Go 不允許宣告了卻沒用到的變數
宣告了卻沒讀過的區域變數(以及沒用到的 import)在 Go 是編譯錯誤,不是警告。
for _, value := range x { // 不寫 _ 而寫 i,卻沒用到 i → 編譯失敗
total += value
}所以 _(blank identifier)在 Go code 裡到處都是:它是「我知道這裡有個值,我明確不要」的語法。
這條規則把其他語言靠 linter 才抓得到的死碼提前到編譯期,代價是除錯時特別煩——臨時註解掉一行就可能讓上面的變數變成沒人用而編譯不過。