val و var
val name = "براء" // ثابت (لا يتغيّر)
var age = 25 // متغيّر
age = 26 // ✅
valللقيم الثابتة (المفضّلة).varللقيم المتغيّرة.
الأنواع تُستنتج تلقائيًا
val city = "الرياض" // String
val count = 10 // Int
val price = 19.99 // Double
// أو صراحةً
val age: Int = 25
أمان القيم الفارغة (Null Safety)
ميزة Kotlin الأشهر: لا يمكن للمتغيّر أن يكون null إلا إذا صرّحت بذلك بـ ?:
var name: String = "براء"
// name = null // ❌ خطأ!
var nickname: String? = null // ✅ مسموح بالعلامة ?
الوصول الآمن
val length = nickname?.length // null إن كان nickname فارغًا، بلا انهيار
عامل elvis لقيمة افتراضية:
val len = nickname?.length ?: 0 // 0 إن كان null
الطباعة والدمج
val name = "سارة"
val age = 22
println("الاسم $name والعمر $age")
println("بعد سنة: ${age + 1}")
💡 أمان null في Kotlin يقضي على "خطأ المليار دولار" (NullPointerException) الشهير في Java.
🎯 التالي: الدوال والتحكّم والأصناف.