Go 不允許宣告了卻沒用到的變數

宣告了卻沒讀過的區域變數(以及沒用到的 import)在 Go 是編譯錯誤,不是警告。

for _, value := range x {   // 不寫 _ 而寫 i,卻沒用到 i → 編譯失敗
    total += value
}

所以 _(blank identifier)在 Go code 裡到處都是:它是「我知道這裡有個值,我明確不要」的語法。

這條規則把其他語言靠 linter 才抓得到的死碼提前到編譯期,代價是除錯時特別煩——臨時註解掉一行就可能讓上面的變數變成沒人用而編譯不過。

相關:Go 的 range 回傳 index 與 valueGo 宣告變數的四種寫法