عمليات التعداد (F#)

عمليات التعداد هي الأنواع التي تحتوي على التعيين معرفة من قيم مسماة. يمكنك استخدام بدلاً من القيم الحرفية إلى جعل تعليمات برمجية أكثر قابلية للقراءة و maintainable.

type enum-name =
   | value1 = integer-literal1
   | value2 = integer-literal2
   ...

ملاحظات

قائمة تعداد يبدو مثل توحيد discriminated الذي يحتوي على قيم البسيطة، إلا أنه يمكن أن يتم تعيين قيم. عادة ما تكون قيم الإعداد الصحيحة التي تبدأ عند 0 أو 1، أو بالإعداد الصحيحة التي تمثل مواضع بت. النوع الأساسي للتعداد هو تحديد من الحرفي الذي هو استخدامه، حيث، تشغيل سبيل المثال، يمكنك استخدام قيم قيمة حرفية مع لاحقة، مثل 1u، 2u، وهكذا، لعدد صحيح غير موقع ( uint32). نوع

عند الإشارة إلى قيم المسماة، يجب عليك استخدام اسم نوع التعداد نفسه كمؤهل ما الذي هو، enum-name.value1، ليس فقط value1. هذا سلوك يختلف عن الاتحادات discriminated. هذا سبب التعدادات دوماً السمة RequireQualifiedAccess.

إظهار التعليمة البرمجية التالية إعلان لتعداد والاستخدام.

// Declaration of an enumeration.
type Color =
   | Red = 0
   | Green = 1
   | Blue = 2
// Use of an enumeration.
let col1 : Color = Color.Red

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

// Conversion to an integral type.
let n = int col1

يمكن أن تتضمن الأنواع التي تم تعدادها واحد الأنواع الأساسية التالية: sbyte و byte و int16 و uint16 و int32 و uint32 و int64 و uint16 و uint64 و char قائمة تعداد أنواع تتمثل في إطار عمل.NET كأنواع موروثة من Enum، التي بدورها هو موروثة من ValueType. وهكذا، تكون أنواع القيم التي تقع تشغيل مكدس أو المضمنة في كائن متضمن، أي القيمة من النوع الأساسي هو القيمة صالحة للتعداد. Th هو هو هامة عند القيم المطابقة في قائمة تعداد نمط، لأنه يجب توفير نمط catches القيم غير مسمى.

enumدالة في المكتبة F# التي يمكن استخدامها لإنشاء قيمة قائمة تعداد، وحتى قيمة غير ذلك من واحد الإجراءات المعرفة مسبقاً، باسم قيم. تقوم استخدم enumتعمل كما يلي.

let col2 = enum<Color>(3)

الافتراضي enumتعمل مع نوع دالة int32. ولذلك، لا يمكن استخدامه مع أنواع التعداد التي تحتوي على الأنواع الأساسية الأخرى. بدلاً من ذلك، استخدم الإجراءات التالية.

type uColor =
   | Red = 0u
   | Green = 1u
   | Blue = 2u
let col3 = Microsoft.FSharp.Core.LanguagePrimitives.EnumOfValue<uint32, uColor>(2u)

راجع أيضًا:

المبادئ

بث و تحويلات (F#)

موارد أخرى

مرجع لغة ب #