التعداد (enum)
enum class Direction {
UP, DOWN, LEFT, RIGHT
}
val d = Direction.UP
when (d) {
Direction.UP -> println("للأعلى")
else -> println("اتجاه آخر")
}
تعداد بقيم:
enum class Status(val code: Int) {
OK(200), NOT_FOUND(404)
}
println(Status.OK.code) // 200
الأصناف المختومة (sealed)
تمثّل مجموعة محدودة ومعروفة من الأنواع — قوية مع when:
sealed class Result
data class Success(val data: String) : Result()
data class Error(val message: String) : Result()
fun handle(r: Result) = when (r) {
is Success -> println(r.data)
is Error -> println(r.message)
// لا حاجة لـ else: when شاملة لكل الحالات
}
💡 sealed class مثالية لتمثيل حالات الواجهة (تحميل/نجاح/خطأ) وضمان تغطية كل الحالات وقت الترجمة.
🎯 التالي: دوال التمديد.