ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
Null Safety (`?`, `?:`, `!!`) ကို Android development မှာ constant သုံးရပါတယ် — UI element (nullable view reference) တွေမှာ crash ကို ကာကွယ်ဖို့ အရေးကြီးပါတယ်။ Lambda expression (`{ ... }`) ကို button click listener, list transformation တွေမှာ တွေ့ရမှာပါ။ Data Class (`data class User(val name: String, val age: Int)`) ကို app ရဲ့ data model (user, product, todo item) ကို ကိုယ်စားပြုဖို့ တွေ့ရမှာပါ — Compose UI state တွေကို ဒီ data class တွေနဲ့ ပုံဖော်ပါတယ်.
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
`var name: String? = null` လို့ ရေးထားရင် 'name' က null ဖြစ်နိုင်တယ် ဆိုတာ compiler ကို ပြောတာပါ — `name?.length` ရေးရင် name null ဖြစ်ရင် crash မဖြစ်ဘဲ null ကို ပြန်ပေးပါတယ်။ Button click ကို `Button(onClick = { println("clicked") })` လို့ lambda နဲ့ ရေးတာကို Compose (နောက် lesson) မှာ ထပ်ခါထပ်ခါ တွေ့ရမှာပါ.
အတူတူ ကြည့်မယ်
// Null safety
var name: String? = null
val length = name?.length ?: 0 // 0 if name is null
// Lambda
val greet = { userName: String -> "Hello, $userName!" }
// Data class — will represent our UI state later
data class TodoItem(
val id: String,
val title: String,
val isDone: Boolean = false
)$ println(length)
0
$ println(greet("Aye Aye"))
Hello, Aye Aye!၅ မိနစ် စမ်းကြည့်
`TodoItem` data class ကို ကိုယ်တိုင် ရေးကြည့်ပြီး, instance ၂-၃ ခု create ကာ `println` နဲ့ output ကို ကြည့်ကြည့်ပါ (Kotlin Playground ဒါမှမဟုတ် Android Studio scratch file သုံးလို့ရပါတယ်)။
သတိလေးတစ်ချက်
`!!` ကို 'null ဖြစ်နိုင်တဲ့အရာကို null မဟုတ်ဘူးလို့ force ပြောတာ' ဆိုတာ သတိထားပါ — အမှန်တကယ် null ဖြစ်နေရင် app crash ချက်ချင်း ဖြစ်ပါလိမ့်မယ်။