[go] go 모듈 파일 (go.mod) 내에서“go”버전 지시문을 사용하면 어떤 의미가 있습니까?

다음 go.mod 파일이 제공됩니다.

module foo

go 1.12

require (
    github.com/bar/baz v1.0.0
    github.com/rat/cat v1.0.0
)

무엇을 go 1.12나타 냅니까? foo다른 버전의 Go에 대해 모듈을 컴파일하지 못하게합니까 ? 아니면 단순히 foo권장 / 필요한 Go 버전을 나타내는 지표 입니까? 새 버전의 go가 릴리스 될 때마다 (6 개월마다) 업데이트해야하는 지시문입니까?



답변

최소한의 필수 Go 버전 라인을 따라 고려해야합니다. 동일하거나 더 높은 버전의 Go로 빌드하는 경우 Go 1 호환성 약속에서 약속 한대로 모두 괜찮습니다 . 낮은 버전으로 빌드하면 빌드가 실패하면 오류 메시지가 나타납니다.

go.mod 파일의 go 지시문은 이제 해당 모듈 내의 파일이 사용하는 언어 버전을 나타냅니다. 기존 버전이없는 경우 현재 릴리스 (1.12로 이동)로 설정됩니다. 모듈에 대한 go 지시문이 사용중인 툴체인보다 최신 버전을 지정하면 go 명령은 패키지에 관계없이 패키지 빌드를 시도하고 해당 빌드가 실패하는 경우에만 불일치를 기록합니다. Go 1.12 출시 노트


답변