go.mod의 go 지시

2441 단어 Gotech
go.mod에서 하나의 항목이 go의 버전을 지정했는데, 이를 'go 디렉터리' 라고 부른다.
go.mod
go 1.14
여기에 쓴 고의 버전은 로컬에 설치된 고의 버전과 무슨 관계가 있습니까?예를 들어 위에서 말한 바와 같이 1.14로 지정되었을 때 로컬 고의 버전이 1.15이라면 어떻게 될까요?이런거, 잘 몰라서 조사해 봤어.
참고 자료에 쓰여 있습니다.
goo 디렉터리는 모듈이 구상한 버전의 Go를 나타낸다.goo 지시는 원래 Go 언어의 하위 호환성 변경을 지원하는 것을 목적으로 한다.그러나 모듈을 가져온 후 후방을 호환하지 않는 변경은 없습니다.따라서 현재 1.17이 발표되었고 1.13에서 컴파일할 수 있는 코드는 이후의 goo의 모든 버전이 정상적으로 작동할 수 있음을 의미한다.
단, goo 디렉터리는 지정한 버전에 따라 사용 가능한 언어 기능에 영향을 줍니다.예를 들어, go.mod에서 지정go 1.12할 때 1.13에서 가져온 1_000_000와 같은 수치 소양을 사용할 수 없습니다.로컬에 설치된 고의 버전은 1.13에도 사용할 수 없다고 가정합니다.
내가 실제로 해 볼게.아래main.준비 고.
main.go
package main

import (
    "fmt"
)

func main() {
    fmt.Println(1_000_000)
}
go.mod에서 다음과 같이 1.12를 지정합니다.
go.mod
...
go 1.12
이렇게 go build하는 동안 다음 오류가 발생했습니다.
./main.go:8:17: underscores in numeric literals requires go1.13 or later (-lang was set to go1.12; check go.mod)
또한 지정된 버전에 따라 동작이 달라질 수 있습니다.자세한 내용은 참고 자료를 참조하십시오.

좋은 웹페이지 즐겨찾기