ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
ဒီ lesson က teaching content အသစ်မဟုတ်ဘဲ Basic နဲ့ Intermediate chapter မှာသင်ခဲ့ပြီးသား function, slice, map, loop skill တွေကို confidence ရှိအောင် ပြန်လေ့ကျင့်ဖို့ ရည်ရွယ်ထားပါတယ်။ Task တစ်ခုချင်းစီကို ကိုယ်တိုင် code ရေးပြီးမှ solution နဲ့ ယှဉ်ကြည့်ဖို့ အကြံပြုပါတယ်။ ဒီ practice set ကို ပြီးအောင်လုပ်နိုင်ရင် နောက် project chapter ကို ပိုအဆင်ပြေအောင် ဆက်လုပ်နိုင်ပါလိမ့်မယ်။ Difficulty level က medium လောက်ဖြစ်ပြီး slice manipulation နဲ့ map counting logic ကို အဓိကထားစမ်းသပ်ပါတယ်။
လေ့ကျင့်ခန်းများ
Task 1: int slice တစ်ခုလက်ခံပြီး element အားလုံးရဲ့ ပေါင်းလဒ် (sum) ကို return ပြန်တဲ့ sum(nums []int) int function ရေးပါ။ Task 2: string တစ်ခုလက်ခံပြီး string ထဲက character တစ်ခုချင်းစီ ဘယ်နှစ်ကြိမ်ပါလဲဆိုတာကို map[rune]int အနေနဲ့ count တွက်ပေးတဲ့ countChars(s string) map[rune]int function ရေးပါ။ Task 3: int slice ကို parameter အနေနဲ့ယူပြီး slice ထဲက even number တွေချည်းသာပါတဲ့ slice အသစ် return ပြန်တဲ့ filterEven(nums []int) []int function ရေးပါ။ Task 4: struct Person{Name string; Age int} တစ်ခုဖန်တီးပြီး Person slice ကို လက်ခံကာ Age အများဆုံးလူကို ရှာပြီး return ပြန်တဲ့ oldest(people []Person) Person function ရေးပါ။
Code နမူနာ
package main
import "fmt"
// Task 1
func sum(nums []int) int {
// TODO: implement
return 0
}
// Task 2
func countChars(s string) map[rune]int {
// TODO: implement
return nil
}
// Task 3
func filterEven(nums []int) []int {
// TODO: implement
return nil
}
// Task 4
type Person struct {
Name string
Age int
}
func oldest(people []Person) Person {
// TODO: implement
return Person{}
}
func main() {
fmt.Println(sum([]int{1, 2, 3, 4, 5}))
fmt.Println(countChars("gopher"))
fmt.Println(filterEven([]int{1, 2, 3, 4, 5, 6}))
people := []Person{{"Aye", 25}, {"Bo", 30}, {"Cho", 22}}
fmt.Println(oldest(people))
}sum() က 15, filterEven() က [2 4 6], oldest() က {Bo 30} ဆိုပြီး terminal ပေါ်မှာ ပေါ်လာရမှာပါ (countChars output က character count map ဖြစ်ပါလိမ့်မယ်)။၅ မိနစ် စမ်းကြည့်
5 minutes အတွင်း TODO comment 4 ခုကို ကိုယ်တိုင်ဖြည့်ပြီး go run ခေါ်ကာ output က မှန်ကန်မှန်းစစ်ကြည့်ပါ။
သတိလေးတစ်ချက်
Self-practice မှာ solution ကို ချက်ချင်းမကြည့်ဘဲ ကိုယ်တိုင် compile error၊ logic error တွေကို debug လုပ်ကြည့်ပါ - ဒါမှ concept တွေက စွဲမှာဖြစ်ပါတယ်။