iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
Modern Web

後端攻略筆記系列 第 19

Day 19 :【Go 練習題】用 for...range 幫助小偵探統計「神秘盒子」裡的寶藏

  • 分享至 

  • xImage
  •  

【Go 練習題】用 for...range 幫助小偵探統計「神秘盒子」裡的寶藏

題目背景

你是一位尋寶小偵探,手裡有一個裝滿多種寶物(不同數量糖果、金幣、寶石等)的神秘盒子。盒子裡的寶物種類是用 map[string]int 記錄的,key 是寶物名稱,value 是數量。

你的任務是:

  1. 寫一個函式 TotalTreasure(),利用 for...range 計算盒子裡所有寶物的總數。
  2. 寫一個函式 HasTreasure(),傳入寶物名稱判斷盒子裡有沒有該寶物。
  3. 寫一個函式 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,並結合條件判斷,激發你更靈活地操作資料結構。快來動手試試看,當個聰明的尋寶小偵探吧!


上一篇
Day 18 : Go 語言迴圈大解密:傳統 for 與 for...range 誰適合?
下一篇
Day 20 : Go語言練習- LeetCode 1732 找最高海拔
系列文
後端攻略筆記20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言