if _, err := os.Stat(path); os.IsNotExist(err) {
fmt.Printf("%s does not exist\\n", path)
}
// Bad! This code will crash if path does not exist.
fi, _ := os.Stat(path)
if fi.IsDir() {
fmt.Printf("%s is a directory\\n", path)
}
패키지를 임토하거나 변수를 선언해놓고 쓰지 않으면 에러가 발생함.
미사용 임포트는 프로그램의 크기를 부풀리며 컴파일 속도도 저하시킴.
사용되진 않지만 초기화된 변수는 적어도 연산을 낭비하고 어쩌면 큰 버그를 암시할 수 있음
그러나 프로그램 개발 과정에서 미사용 임포트와 변수들이 종종 생겨날 것이고, 단지 컴파일이 진행되게 하기 위해서 나중에 다시 필요해질 이들을 지우는 것은 비효율적임.
공백 식별자는 이를 피하는 방법을 제공함
아래 코드는 두 개의 미사용 임포트 (fmt, io)와 미사용 변수(fd)를 가지고 있음. 따라서 이는 컴파일 되지 않을 것이지만, 지금까지 코드가 정확하게 만들어 졌는지 확인하고 싶을 수 있음
package main
import (
"fmt"
"io"
"log"
"os"
)
func main() {
fd, err := os.Open("test.go")
if err != nil {
log.Fatal(err)
}
// TODO: use fd.
}