在日常工作中,我們經常使用 err != nil 來判斷程序或函數是否報錯,或者使用 defer {recover = err} 來判斷是否有 panic 嚴重錯誤,但稍不注意,很容易掉進 err shadow 的陷阱。 1. 變量作用域 package main import "fmt" func main() { x := 100 func() { x :=