Keywords in Kotlin (val/var)
Program တွေမှာ Variable တွေကမရှိမဖြစ်လို့ပြောရမယ်ထင်ပါတယ်။ ဒီ Article လေးမှာတော့ Programming Language ရဲ့အခြေခံအကျဆုံးသော အစိတ်အပိုင်း တစ်ခုဖြစ်တဲ့ Variableအကြောင်းကို လေ့လာလို့ရမှာပါ။ အဓိက Hightlight လုပ်သွားမှာတော့ Kotlin မှာရှိတဲ့ Variableတွေ အကြောင်းကိုပါပဲ။
Variables
တန်ဖိုး(value) တွေကို Program Execution အတွင်း ယာယီမှတ်ဉာဏ် (Memory) ပေါ်မှာ ခနတာ သိမ်းထားဖို့အတွက် Variable တွေကိုအသုံးပြုကြရတယ်။ ဒါကြောင့် သူတို့ကို Value Holder, Value Container လို့ ခေါ်ဆိုကြတာ။ သူတို့ရဲ့အလုပ်က တန်ဖိုးတွေကိုသိမ်းထားပေးပြီး ပြန်ယူပေးဖို့ဖြစ်တယ်။
Variable တစ်ခုစီမှာ တန်ဖိုးတစ်ခုသာ သိမ်းထားပေးနိုင်ကြတယ်။ အဲလို တန်ဖိုးတွေ ခွဲခြားသတ်မှတ်ပေးဖို Variableကို နာမည်ပေးထားရတာ။ ကိုယ်သိမ်းဆည်းမဲ့တန်ဖိုး နဲ့ လိုက်ဖက်သင့်လျော်မဲ့ အမည်ကို Programmer အနေနဲ့ သတ်မှတ်ပေးဖို့ လိုအပ်တာပေါ့။
(Programmer မည်သည်မှာ နာမည်ပေးကမွန်းတပ် မပျင်းမရပါဘူး…xD)
ဒီအောက်က ပုံလေးမှာတော့ Variable တစ်ခုရဲ့ အစိတ်အပိုင်းတွေနဲ့ သူတို့ရဲ့ အလုပ်လုပ်ပုံပါ။
အမည်(Identifier) နဲ့ တန်ဖိုး(value) ကို ပေါင်းစည်းပေးတဲ့ တာ၀န် လုပ်ပေးတာကတော့ Assignmenet Operator ပါပဲ။ Variable ထဲသို့ တန်ဖိုးထည့်သွင်းပေးတဲ့ သူလို့ ပြောလည်း မမှားပါဘူး။

Kotlin Variables
Kotlin Language ရဲ့ Variable တွေ အလုပ်လုပ်ပုံကလည်း ထိုနည်းလည်းကောင်းပဲ။
သူ့မှာ တန်ဖိုး အမျိုးအစား (Type) သတ်မှတ်ထားလို့ရပါတယ်။ ကိန်းပြည့်တန်ဖိုး ထားမယ်ဆို — Int (Integer Type)ကို သုံးလို့ရမယ်။ စာသားတန်ဖိုး ထားမယ်ဆို String (String Type)ကို သုံးလို့ရမယ်။ Type ကို သေချာ သတ်မှတ်ပြီးမှ ရေးချင်တဲ့သူအတွက်တော့ ပိုအဆင်ပြေတာပေါ့ဗျာ..။
ဒါကတော့- Kotlin Variable မှာ ရှိတဲ့အစိတ်အပိုင်းတွေပါ.

Kotlin မှာက Val နဲ့ Var ဆိုပြီး Variable နှစ်မျိုးတောင်ရှိတယ် သဗျ။
သူ့တို့ကတော့ ယေဘုယျအားဖြင်း အတူတူပဲ။ သိပ်မကွာလှပါဘူး။ သူတို့ကြားက- အဓိက ကွဲပြားစေတဲ့အချက်က
- Val မှာ တန်ဖိုး တစ်မျိုးတည်းသာရှိနေနိုင်တာ။
- Var အနေနဲ့တော့ တန်ဖိုးတွေ အမျိုးမျိုးပြောင်းလဲခွင့်ရှိတယ်။
တခြားဘာတွေရော ထပ်လုပ်နိုင်ဦးမလဲ? အသေးစိတ် လေ့လာကြည့်ရအောင်..
Val — Immutable
မပြောင်းလဲနိုင်တဲ့ အရာတွေကို Immutable ဖြစ်တယ်လို့ဆိုရမယ်။ Kotlin မှာဆိုရင်… Val တန်ဖိုးပေါ့။
တန်ဖိုးတစ်ခုတည်းထားမယ်ဟေ့ .. ဆိုရင်တော့ Val ကိုပဲ သုံးပေါ့။ ဥပမာ…. Constant တန်ဖိုး (PI ), Read-only ဖြစ်တဲ့, Final ဖြစ်တဲ့ တန်ဖိုးမျိုး။ သူတို့မှာ ထပ်ပြောင်းလဲဖို့ မရှိတော့ဘူးလေ။ အဲလို နေရာမျိုးဆိုရင် Val ကို အသုံးပြုသင့်တယ်။

သူရဲ့အားသာတဲ့အချက်က တန်ဖိုး မပြောင်းလဲနိုင်တဲ့အတွက် Thread-safe ပိုဖြစ်တယ်။ Mutithreadingမှာ ဖြစ်တတ်တဲ့ ပြဿနာတွေ (ဥပမာ- DeadLock လိုမျိုး ) Val မှာ မရှိနိုင်တော့ဘူး။
Var — Mutable
တန်ဖိုး တစ်ခုပြီးတစ်ခု ရှိနေမယ်. ပြောင်းလဲတတ်တဲ့ သဘာ၀ရှိတယ်..ဆို- Mutable ဖြစ်တယ်လို့ သတ်မှတ်လို့ရမယ်ထင်ပါတယ်။ Kotlin မှာ Mutable ဖြစ်တာ Var ပေါ့။ Mutable ဆိုတဲ့အတိုင်း Var တန်ဖိုးတွေကို ရှယ်ပလန် နဲ့ ချိန်းနေလို့ရတယ်။
သို့ပေမဲ့ တန်ဖိုးအမျိုးအစားတော့ တလွဲထည့်လို့မရဘူး။ အမျိုးအစား အတူတူဖြစ်ရမယ်. ကိန်းပြည့် (Integer) ဆိုရင် နောက်တန်ဖိုးသည်လည်း ကိန်းပြည့်ပဲ ဖြစ်ရမယ်။

သူ့ကို State တွေ၊ Progress တွေ၊ Iteration တွေမှာ အသုံးပြုကြတယ်။
Var မှာလည်း သူ့အားသာတဲ့အချက်နဲ့သူဗျ။ အဲတာက- Variable တစ်ခုတည်း သုံးပြီး Value တွေအမျိုးမျိုးပြောင်းထားလို့ရနိုင်တာ။ အဲဒီတော့ Memory Space ကို ခြွေတာနိုင်မယ် ပေါ့။
ကဲ.. ဒီလောက်ဆိုရင်တော့ဖြင့် .. Program ရဲ့ Variable တွေအကြောင်း Kotlin Variable တွေရဲ့ Val နဲ့ Var အကြောင်း သဘောပေါက် နားလည်မယ်လို့ ယူဆပါတယ်။
နောက်Article မှာထပ်ဆုံကြမယ်ဗျာ. See you.