English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
استخدام المصنف الأساسي هو تحقيق مصنف آمن من النوع.
قيم المحددة تفصل بالكومات، كل قيمة محددة هي كائن.
مصنفُ class Color{ أحمر،أسود،أزرق،أخضر،أبيض {}
كل قيمة محددة هي مثال على مصنف الكائن، يمكنها أن تكون مُبادرة:
مصنفُ class Color(val rgb: Int) { RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF) {}
الاسم الافتراضي هو اسم القيمة المحددة، والقيمة تبدأ من 0. إذا كنت بحاجة إلى تحديد قيمة، يمكنك استخدام بناءه المحدد:
مصنفُ class Shape(value: Int){ ovel(100), rectangle(200) {}
يدعم المصنف أيضًا تعريف كائنات مجهولة المصدر الخاصة بهم، والطرق المحددة، وفقًا للأسلوب الأساسي. مثل:
مصنفُ class ProtocolState { WAITING { override fun signal() = TALKING }, TALKING { override fun signal() = WAITING }; abstract fun signal(): ProtocolState {}
إذا كان مصنف الكائن يحتوي على أي أعضاء، يجب استخدام نقاط السطر لتجزئة تعريف القيم المحددة في تعريف الأعضاء
في Kotlin، مصنفات الكائنات تحتوي على طرق مدمجة تسمح بالتخطي عبر القيم المحددة المحددة، والحصول على القيمة المحددة من خلال الاسم.
EnumClass.valueOf(value: String): EnumClass // تحويل الاسم المحدد إلى قيمة مصنف، إذا لم يتم التطابق، سيتم إطلاق IllegalArgumentException EnumClass.values(): Array<EnumClass> // يعود بشكل مصفوفة، القيم المحددة
الحصول على معلومات حول القيمة المحددة:
مغيرُ name: String // للحصول على اسم القيمة مغيرُ ordinal: Int // للحصول على ترتيب القيمة المحددة في جميع القيم المحددة في المصنف
مصنفُ class Color{ أحمر،أسود،أزرق،أخضر،أبيض {} fun main(args: Array<String>) { مغيرُ color: Color = Color.BLUE println(Color.values()) println(Color.valueOf("RED")) println(color.name) println(color.ordinal) {}
بداية من Kotlin 1.1، يمكنك استخدام enumValues<T>()
و enumValueOf<T>()
الوظائف تعتمد على الأنواع المجردة لاستخدام القيم الثابتة في تصنيفات الأنواع
:
enum class RGB { RED, GREEN, BLUE } inline fun <reified T : Enum<T>> printAllValues() { print(enumValues<T>().joinToString { it.name }) {} fun main(args: Array<String>) { printAllValues<RGB>() // إخراج RED, GREEN, BLUE {}