//go:build와 // build 지시문의 차이점
//go:build 지시문은 새로운 조건부 컴파일 지시문입니다. // 빌드 지시문을 대체하기 위해 Go 1.17에 도입되었습니다. 두 지시어 모두 파일이 패키지에 포함되어야 하는 조건을 지정할 수 있도록 허용하지만 //go:build는 몇 가지 주요 개선 사항을 제공합니다.
-
일관성: // go:build 구문은 //go:generate와 같은 다른 기존 Go 지시문 및 pragma와 일치합니다.
-
향상됨 표현식: //go:build는 표준 부울 표현식(예: //go:build foo && bar)을 지원하는 반면 // build는 AND(쉼표) 및 OR(공백)에 덜 직관적인 구문을 사용했습니다.
-
코드 형식: //go:build 지시문은 gofmt에 의해 자동으로 형식이 지정됩니다. 이렇게 하면 지시어와 패키지 문 사이에 빈 줄을 두지 않는 것과 같은 일반적인 실수를 방지할 수 있습니다.
Go 1.18에서는 //go:build를 기본 지시어로 올렸으며, 점진적으로 // build를 제거할 계획입니다. 윤곽. 두 지시어 간의 전환은 다음과 같이 처리됩니다.
- Go 1.18 이상에서는 //go:build가 기본 빌드 제약 조건 지시어입니다.
- 파일에 //가 없는 경우 go:build 지시문이 있으면 모든 // 빌드 지시문이 계속 적용됩니다.
- 파일에 //go:build 및 // build가 모두 포함된 경우 지시문, //go:build는 정보의 소스로 간주되며 gofmt는 일치하도록 // 빌드를 업데이트합니다.
위 내용은 Go 1.17의 `//go:build`: 조건부 컴파일의 `// build`와 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!