تسمية الأنواع البديلة
يُعدّ استخدام أسماء بديلة للأنواع ميزةً في بعض لغات البرمجة تسمح بإنشاء مرجع لنوع باستخدام اسم آخر. لا يُنشئ هذا النوع نوعًا جديدًا، وبالتالي لا يُحسّن من سلامة الأنواع . يُمكن استخدامه لاختصار اسم طويل. تشمل اللغات التي تدعم استخدام أسماء بديلة للأنواع: C++ ، C#، Crystal ، D ، Dart ، Elixir ، Elm ، F# ، Go ، Hack ، Haskell ، Julia ، Kotlin ، Nim ، OCaml ، Python ، Rust ، Scala ، Swift ، و TypeScript .
مثال
لغة سي++
تتميز لغة C++ بخاصية تسمية الأنواع باستخدام usingالكلمة المفتاحية.
باستخدام المسافة = عدد صحيح ؛سي شارب
يدعم الإصدار 12 من لغة C# والإصدارات الأحدث منها استخدام الكلمة المفتاحية `type aliasing` using. أما الإصدارات الأقدم فتُقيّد استخدامها بنطاق الملف المحلي أو سياقات استيراد محددة. [ 1 ]
باستخدام المسافة = عدد صحيح ؛كريستال
تتميز لغة Crystal بخاصية تسمية الأنواع باستخدام الكلمة aliasالمفتاحية. [ 2 ]
اسم مستعار للمسافة = عدد صحيح 32 بت ؛د
تتميز لغة D بخاصية تسمية الأنواع باستخدام الكلمة aliasالمفتاحية. [ 3 ]
اسم مستعار: المسافة = عدد صحيح ؛دارت
تتميز لغة دارت بخاصية تسمية الأنواع باستخدام typedefالكلمة المفتاحية. [ 4 ]
typedef Distance = int ;إكسير
تتميز لغة Elixir بخاصية تسمية الأنواع باستخدام @type. [ 5 ]
@type Distance :: integerإلم
تتميز لغة Elm بخاصية تسمية الأنواع باستخدام type alias.
اسم النوع Distance = عدد صحيحفا#
يتميز F3 بخاصية تسمية الأنواع باستخدام الكلمة typeالمفتاحية.
نوع المسافة = عدد صحيحيذهب
تتميز لغة Go بخاصية تسمية الأنواع باستخدام typeالكلمة المفتاحية و =.
نوع المسافة = عدد صحيحاختراق
تُتيح هذه التقنية إمكانية استخدام الكلمة newtypeالمفتاحية `name` لإنشاء أنواع بديلة. [ 6 ] عمليًا، يُنشئ هذا نوعًا جديدًا ومتميزًا غير متوافق مع نوعه الأصلي int. وهذا أكثر صرامة من مجرد استخدام اسم بديل بسيط، والذي يكون عادةً شفافًا وقابلًا للتبادل مع النوع الأصلي.
newtype Distance = int ;هاسكل
تتميز لغة هاسكل بخاصية تسمية الأنواع باستخدام الكلمة typeالمفتاحية. [ 7 ]
نوع المسافة = عدد صحيح ؛جوليا
تتميز لغة جوليا بخاصية إعادة تعريف الأنواع. [ 8 ] يُعد استخدام constهذه الخاصية من أفضل الممارسات (مع أنها ليست شرطًا أساسيًا لإعادة تعريف الأنواع). فهي تمنع إعادة تعريف النوع المستعار إلى نوع مختلف لاحقًا في البرنامج، مما يضمن استقراره.
المسافة الثابتة = عدد صحيحكوتلين
تتميز لغة Kotlin بخاصية تسمية الأنواع باستخدام الكلمة المفتاحية. [ 9 ]typealias
typealias Distance = Intنيم
تتميز لغة Nim بخاصية تسمية الأنواع البديلة. [ 10 ]
نوع المسافة * = عدد صحيحأوكاميل
تتميز لغة OCaml بخاصية تسمية الأنواع البديلة. [ 11 ]
نوع المسافة = عدد صحيحبايثون
تتميز لغة بايثون بخاصية تسمية الأنواع البديلة. [ 12 ]
Vector = list [ float ]يمكن تمييز أسماء الأنواع المستعارة باستخدام TypeAlias لتوضيح أن العبارة هي تعريف لنوع مستعار، وليست إسنادًا عاديًا لمتغير. استخدام TypeAlias (من PEP 613) ليس شرطًا لعمل الاسم المستعار، ولكنه يُخبر مدققي الأنواع الثابتة (مثل Mypy ) صراحةً أن الإسناد هو تعريف لنوع، وليس إسنادًا لمتغير وقت التشغيل.:TypeAlias
from typing import TypeAliasVector : TypeAlias = list [ float ]الصدأ
تتميز لغة Rust بخاصية تسمية الأنواع باستخدام الكلمة typeالمفتاحية. [ 13 ]
نوع النقطة = ( u8 , u8 );سكالا
يمكن للغة سكالا إنشاء أسماء بديلة للأنواع باستخدام أنواع مبهمة. [ 14 ]
كائن اللوغاريتمات : نوع معتم، اللوغاريتم = عدد عشري مزدوجسويفت
تتميز لغة Swift بخاصية تسمية الأنواع باستخدام typealiasالكلمة المفتاحية.
typealias Distance = Int ;تايب سكريبت
تتميز لغة TypeScript بخاصية تسمية الأنواع باستخدام الكلمة المفتاحية. [ 15 ]type
نوع المسافة = رقم ؛زيج
تتميز لغة Zig بخاصية تسمية الأنواع عن طريق تعيين نوع بيانات لثابت. [ 16 ]
const distance = u32 ;مراجع
- ↑ "اسم مستعار لأي نوع - مواصفات ميزات مسودة C# 12.0" . learn.microsoft.com . 16 أغسطس 2023. تم الاطلاع عليه في 23 فبراير 2024 .
- ↑ "alias - Crystal" . crystal-lang.org . تم الاطلاع عليه بتاريخ 21 فبراير 2024 .
- ↑ "Alias Alias - D Programming Language" . dlang.org . تم الاطلاع عليه بتاريخ 18 يونيو 2023 .
- ↑ "Typedefs" . dart.dev . تم الاطلاع عليه بتاريخ 18 يونيو 2023 .
- ↑ "مواصفات الأنواع والسلوكيات" . elixir-lang.github.com . تم الاطلاع عليه بتاريخ 23 يونيو 2023 .
- ↑ "الأنواع: أسماء الأنواع البديلة" . docs.hhvm.com . تم الاطلاع عليه بتاريخ 18 يونيو 2023 .
- ↑ "مرادف النوع - هاسكل ويكي" . wiki.haskell.org . تم الاطلاع عليه بتاريخ 18 يونيو 2023 .
- ↑ "الأنواع · لغة جوليا" . docs.julialang.org . تم الاطلاع عليه بتاريخ 23 يونيو 2023 .
- ↑ "أسماء الأنواع البديلة | كوتلن" . مساعدة كوتلن . تم الاطلاع عليه بتاريخ 18 يونيو 2023 .
- ↑ "Nim by Example - Types" . nim-by-example.github.io . تم الاطلاع عليه بتاريخ 21 يونيو 2023 .
- ↑ "دليل مرجعي للغة OCaml" . ocaml.org . تم الاطلاع عليه بتاريخ 23 أبريل 2024 .
- ↑ "الكتابة - دعم تلميحات النوع" . وثائق بايثون . مؤسسة برمجيات بايثون . تم الاطلاع عليه بتاريخ 18 يونيو 2023 .
- ↑ "أسماء الأنواع البديلة - مرجع لغة رست" . doc.rust-lang.org . تم الاطلاع عليه بتاريخ 18 يونيو 2023 .
- ↑ "الأنواع المبهمة" . وثائق سكالا . تم الاطلاع عليه بتاريخ 18 يونيو 2023 .
- ↑ "التوثيق - أنواع يومية" . www.typescriptlang.org . تم الاطلاع عليه بتاريخ 18 يونيو 2023 .
- ↑ "الوثائق - لغة برمجة Zig" . ziglang.org . تم الاطلاع عليه بتاريخ 14 أكتوبر 2024 .
- أنواع البيانات
- بنى البرمجة
- مقارنات لغات البرمجة
