你是一位尋寶小偵探,手裡有一個裝滿多種寶物(不同數量糖果、金幣、寶石等)的神秘盒子。盒子裡的寶物種類是用 map[string]int
記錄的,key 是寶物名稱,value 是數量。
你的任務是:
TotalTreasure()
,利用 for...range
計算盒子裡所有寶物的總數。HasTreasure()
,傳入寶物名稱判斷盒子裡有沒有該寶物。PrintTreasures()
,用 for...range
印出盒子裡每種寶物及其數量,格式如 "寶物:數量"
。func TotalTreasure(treasures map[string]int) int {
total := 0
for _, count := range treasures {
total += count
}
return total
}
func HasTreasure(treasures map[string]int, item string) bool {
_, found := treasures[item]
return found
}
func PrintTreasures(treasures map[string]int) {
for item, count := range treasures {
fmt.Printf("%s:%d\n", item, count)
}
}
myBox := map[string]int{
"糖果": 5,
"金幣": 12,
"寶石": 3,
"古董": 1,
}
TotalTreasure(myBox)
傳回 21
HasTreasure(myBox, "金幣")
傳回 true
HasTreasure(myBox, "鑽石")
傳回 false
這個練習讓你熟悉如何用 for...range
讀取 map,並結合條件判斷,激發你更靈活地操作資料結構。快來動手試試看,當個聰明的尋寶小偵探吧!