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


11

다음 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 개월마다) 업데이트해야하는 지시문입니까?



1
또한 : golang.org/cmd/go/#hdr-The_go_mod_file : go 지시문에 의해 설정된 예상 언어 버전은 모듈을 컴파일 할 때 사용 가능한 언어 기능을 결정합니다. 해당 버전에서 사용 가능한 언어 기능을 사용할 수 있습니다. 이전 버전에서 제거되었거나 이후 버전에서 추가 된 언어 기능은 사용할 수 없습니다. 언어 버전은 사용중인 Go 릴리스에 따라 결정되는 빌드 태그에 영향을주지 않습니다.
icza

답변:


5

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.