المجموعات عن (F#)

على المجموعة هو مجموعة قيم مرتبة ولكن غير مسمى، من الممكن أن تكون من أنواع مختلفة.

( element , ... , element ) 

ملاحظات

كل elementفي بناء الجملة السابقة يمكن أن يكون أي تعبير.

أمثلة

تضمين أمثلة للمجموعات عن أزواج، triples، و هكذا نوع من أنواع مختلفة أو نفسها. يتم توضيح بعض الأمثلة في ما يلي تعليمات برمجية.

// Tuple of two integers.
( 1, 2 ) 

// Triple of strings.
( "one", "two", "three" ) 

// Tuple of unknown types.
( a, b ) 

// Tuple that has mixed types.
( "one", "1", "2.0" ) 

// Tuple of integer expressions.
( a + 1, b + 1) 

الحصول على قيم فردية

يمكنك استخدام مطابقة نقش للوصول إليه وقم بتعيين أسماء لعناصر المجموعة، كما هو موضح فيما يلي تعليمات برمجية.

let print tuple1 =
   match tuple1 with
    | (a, b) -> printfn "Pair %A %A" a b

يمكنك استخدام المجموعة الأنماط في letروابط كـ يلي.

let (a, b) = (1, 2)

وهذا بربط قيم aو bفي نفس الوقت. إذا احتجت إلى عنصر واحد فقط المجموعة، يمكن استخدام حرف بدل (التسطير أسفل السطر) لتجنب إنشاء الاسم جديد لمتغير لا تحتاج.

let (a, _) = (1, 2)

دالات fstو sndالعودة أول والثانية عناصر المجموعة، على التوالي.

let c = fst (1, 2)
let d = snd (1, 2)

هناك هو لا دالة المضمنة التي تقوم بإرجاع العنصر الثالث ثلاث مرات، ولكنك بسهولة كتابة واحد كما يلي.

let third (_, _, c) = c

بشكل عام، فإنه هو أفضل باستخدام مطابقة نقش للوصول إلى العناصر الفردية في المجموعة.

استخدام المجموعات عن

توفر المجموعات عن طريقة مناسبة إلى بإرجاع قيم متعددة من دالة، كما هو موضح في المثال التالي. هذا المثال يقوم بقسمة عدد صحيح وإرجاع نتيجة تشغيل مستدير الزوايا أول عضو المجموعة ينشئ ازدواجًا والباقي كعضو الينشئ ازدواجًا ثاني.

let divRem a b = 
   let x = a / b
   let y = a % b
   (x, y)

يمكن استخدام المجموعات عن كوسيطات دالة عندما تريد تجنب currying الضمني وسيطات دالة التي هو مضمنة ببناء جملة دالة المعتادة.

let sumNoCurry (a, b) = a + b

بناء الجملة المعتادة لتعريف الدالة let sum a b = a + bيتيح لك إلى تعريف دالة غير التطبيق الجزئي من الوسيطة الأولى للدالة، كما هو موضح في التعليمة البرمجية التالية.

let addTen = sum 10
let result = addTen 95  
// Result is 105.

استخدام المجموعة كـ تعطل معلمة currying. للحصول على مزيد من المعلومات، راجع "الجزئيه تطبيق من وسائط" الدالات (F#).

أسماء أنواع المجموعة

عند الكتابة عن اسم نوع التي هو المجموعة، استخدم * الرمز للفصل بين العناصر. للمجموعة التي تتكون من int، float، string، مثل (10, 10.0, "ten")، نوع قد يمكن كتابتها كما يلي.

int * float * string

نموذج المترجمة من المجموعات عن

إذا كنت فقط استخدام المجموعات عن من F# لا يتعرض لها إلى اللغات الأخرى، وإذا لم يتم من استهداف أحد إصدارات.NET Framework التي تسبق الإصدار 4، يمكنك تجاهل هذا مقطع.

يتم تصنيف المجموعات عن في الكائنات واحد عام عدة أنواع، الجميع باسم Tuple، التي تكون محملة فوق طاقتها تشغيل عدد الوسيطات، أو عدد من معلمات نوع. تظهر أنواع المجموعة في ترتيب هو النموذج عند عرضها من لغة أخرى، مثل C# أو Vهوual الأساسية، أو عند استخدام أداة الذي هو ليس على علم بنيات ب #. Tupleأنواع تم تقديمه في.NET Framework 4. إذا قمت يتم استهداف إصدار سابق من برنامج.NET Framework، يستخدم المحول البرمجي إصدارات النظام.Tuple من الإصدار 2.0 من "مكتبة الأساسية" ب #. يتم استخدام الأنواع في هذه المكتبة فقط للتطبيقات التي تستهدف 2.0 و 3.0 واصدارات.NET Framework 3.5. يتم استخدام إعادة توجيه النوع للتأكد من توافق الثنائي بين مكونات برنامج.NET Framework 2.0 و.NET Framework 4 ب #.

راجع أيضًا:

موارد أخرى

مرجع لغة ب #

أنواع ب #