Keywords in Kotlin(fun #2)
Kotlin Function တွေမှာ ရနိုင်တဲ့ feature လေးတွေ အကြောင်းပါ။ လုပ်ငန်းခွင်မှာ တော်တော် အသုံးတည့်ပါတယ်။ ကျွန်တော်ကိုယ်တိုင်လဲ သုံးဖြစ်တယ်။
1. Default Arguments
အရင် Article မှာပြောခဲ့သလိုပဲ Parameter သည် တန်ဖိုးတွေကို လက်ခံမဲ့သူ။ Argument ကြတော့ Parameterထဲကို အထည့်ခံရမဲ့သူ။
makeCoffee(9)
အဲ့မှာ- 9 ဆိုတဲ့ တန်ဖိုးလေးက Argument ပေါ့။ Function ထဲကို ထည့်ခံရတဲ့သူဖြစ်တယ်။ Function ဘက်က caffeineLevel က Parameterပေါ့။
ဒါနဲ့ Default ဆိုတဲ့ ဝေါဟာရ ကိုဘယ်မှာသုံးကြလဲ ကြားဖူးလားမသိဘူး?
ဒီလိုပြောဖူးကြတာမျိုး-
“ဒီ Wallpaper က ဖုန်းအသစ်ဝယ်ကတည်း က Default ပါလာတာ”
“Settings တွေ အများကြီး ကလိမိသွားပြီ Default Setting ပြန်ထားရတော့မယ်”
စသည်ဖြင့်
နဂိုကတည်းက ရှိနေတဲ့ အရာတွေ ကို Default လို့သုံးကြတယ်။
အဲ့လိုပဲ Kotlin Functionတွေမှာ Parameter တွေရဲ့ တန်ဖိုးတွေ ကို Default ပေးထားလို့ရတယ်။
အရင် Coffee ဥပမာလေးပဲ ပြန်ကောက်ရရင်-
fun makeCoffee (caf:Int): String{..}
ဒီ functionလေးကို ယူသုံးတဲ့အခါ
var cup = makeCoffee(9)
cup = makeCoffee(1)
အဲ့လို 9,1 တန်ဖိုးတွေကို ထည့်ပေးရတယ်။
အင်းပေါ့ Function ဘက်မှာ Parameter ရှိနေတာကို Argument ထည့်ပေးရမှာပေါ့။
အဲ့လို Function မှာ caf ဆိုတဲ့ Parameter ကို Default Value ပေးထားလို့ရတယ်။
Kotlinမှာ ဒီလိုလေးရေးတယ်-
fun makeCoffee (caf:Int= 2): String{}
သူ့ကို ယူသုံးတဲ့အခါ
var cup = makeCoffee ()
cup = makeCoffee (9)
အကယ်၍ Argument မထည့်ပေးလိုက်ဘူးဆိုရင် အဲ့ Function က Default Value ကို ယူသုံးမယ်။ အပေါ်က makeCoffee() မှာဆို- makeCoffee(2) ဆိုပြီး ခေါ်သုံးတာနဲ့အတူတူပဲ။ Argument မပါတဲ့အတွက် Default Value 2 ကိုပဲယူသုံးတယ်။
အဲ့ Default Argument တွေက ဘယ်လိုနေရာတွေမှာ သုံးသလဲဆို-
တန်ဖိုးတစ်ခုကို အမြဲတမ်းလိုလိုထည့်ပေးရတဲ့အခါမျိုးမှာဖြစ်ဖြစ်
Parameter တွေက 1ခု 2ခုတင်မကပဲ 4,5,6 ခုရှိနေတဲ့ Functionတွေမှာဖြစ်ဖြစ် ရေးရတဲ့ သူအတွက် ပိုအဆင်ပြေတယ်။
ခနခန ရေးပြီးသုံးနေရမဲ့ Functionမျိုးမှာ ထည့်ပေးနေရမဲ့ Value တူနေရင် Default Argument ပေးထားသင့်တယ်။
2. Named Arguments
Argument ဆိုတာ ခန ပြောခဲ့သလို Parameter ထဲ ထည့်ခံရမဲ့သူပေါ့။
Parameterရှိတဲ့ Kotlin Functionတွေကို ယူသုံးတဲ့အခါ ထည့်ပေးလိုက်ရမဲ့တန်ဖိုး (သို့) Passing Value ကို Parameter Name နဲ့
ဒီလိုလေးပေးလို့ထားရတယ်။
makeCoffee (caf=9)
//Named ArgumentmakeCoffee (9)
//Traditional Argument
အပေါ်က နှစ်ကြောင်းက အဓိပ္ပာယ်(Semantic) အတူတူပဲ။
“ဒီတိုင်းပေးလို့ရနေတာကို လျှာလျှာရှည်ရှည်နဲ့ Parameter Name ကြီး ဘာလို့ ထည့်ရေးမှာတုန်း။ ရေးရတာ ပိုရှည်တာပဲရှိမယ်ပေါ့”
အဲ့လိုပြောစရာနေရှိမယ်။
သူ့လည်းပဲ Parameter 1ခု 2 ခုဆို မသိသာဘူး။ အဓိကအားဖြင့် အပေါ်က Default Argument နဲ့ တွဲသုံးဖြစ်ကြတာ။
ကျွန်တော်တို့ အခါတိုင်းရေးဖြစ်ကြတာက Argument ကို Comma (“,”) ခံပြီး အစဉ်လိုက်ပေးဖြစ်ကြတယ်။ ဥပမာ-
fun expo(base:Int,power:Int):Int{..}expo(2,4)
//base=2
//power=4
//2×2×2×2=16
Default Parameter သုံးချင်တဲ့ အခါ အဲ့လို (2နဲ့4ကို) Comma ခံပြီးရေးလို့ အဆင်မပြေတော့ဘူး။
ဥပမာ- ပထမ Parameter မှာ Default ထားချင်တဲ့အခါမျိုး။
fun expo(base:Int=2,power:Int):Int{..}
အဲ့လိုရေးထားရင် Comma နဲ့မရတော့ဘူး။ ခေါ်သုံးတဲ့အခါ ဒီလိုရေးမှ အဆင်ပြေတယ်။
expo(power=8)
//256
သူက base ကိုကျော်ပြီး powerကို Value ထည့်ပေးလိုက်တာ။ base ကတော့ Default 2ပဲသုံးပေါ့။
ခွဲသိထားရမှာက-
-Default Argument သည် Function ရေးတဲ့ဘက်မှာထားတယ်။
-Named Argument ကြ Functionကို ခေါ်သုံးတဲ့ဘက်မှာ ထားတယ်။
ဒီ Article မှာ ရေးထားတဲ့ အကြောင်းအရာတွေ များသွားပြီမို့ ကျန်တဲ့ Feature 3, 4ခုကို နောက် Articleတစ်ခုမှာ ခွဲရေးလိုက်ပါတယ်။