Go에서 파일 이름에 대한 규칙은 무엇입니까?
Go에서 패키지 이름 지정 규칙을 사용할 수 있습니다. 단어 사이에 밑줄이없고 모두 소문자입니다.
이 규칙이 파일 이름에도 적용?
Java 클래스에서했던 것처럼 하나의 파일에 하나의 물건을 넣은 다음의 파일 이름을 지정 했습니까?
현재 struct WebServer가 있으면 web_server.go 파일에 넣습니다.
따라야 할 몇 가지 지침이 있습니다.
- "."로 시작하는 파일 이름 또는 "_"는 이동 도구에서 무시됩니다.
- 접미사
_test.go
가 있는 파일 은go test
도구에 의해서만 컴파일되고 실행됩니다 . - OS 및 특정 특정 접미사가있는 파일은 자동으로 제약 조건을 존재합니다. 예를 들어
name_linux.go
Linuxname_amd64.go
에서 빌드되고 amd64에서 빌드됩니다. 이것은//+build amd64
파일 맨 위에 줄 이있는 것과 같습니다.
자세한 내용은 도구에 대한 문서를 go build
참조하십시오. https://golang.org/pkg/go/build/
Go는 패키지 내에서 코드를 구성하는 방법에서 매우 자유 롭습니다. 일반적으로 코드의 가독성과 이해를 향상시키는 것은 무엇이든 상관 없습니다. 이것이 어떻게 수행하는지 배우는 가장 좋은 방법은 마스터를 연구하는 것입니다. 즉, 표준 라이브러리를 탐색하는 것입니다.
그러나 생각할 수있는 두 가지 규칙이 있습니다. 다른 플랫폼 용으로 사용할 코드를 플랫폼 이름을 접미사로 사용합니다.
mypkg_linux.go // only builds on linux systems
mypkg_windows_amd64.go // only builds on windows 64bit platforms
또한라는 server.go
파일이있는 경우 해당 파일에 대한 테스트는 server_test.go
.
JimB가 제공 하는 답변 외에도 일반 파일 이름은 소문자이고 짧으며 어떤 종류의 밑줄이나 공백도 없습니다. 일반적으로 파일 이름은 패키지 이름과 동일한 규칙을 사용합니다. 효과적인 Go 의 패키지 이름 섹션을 참조하십시오 .
좋은 예 는 strconv 패키지 를 참조하십시오 .
일반적으로 파일 이름의 밑줄은 플랫폼 / 아치 전용 코드를 할당하는 데 사용됩니다. 예를 들면 다음과 같습니다.
➜ cd $GOROOT/src/pkg/math/
➜ ls sqrt*s
sqrt_386.s sqrt_amd64p32.s sqrt_amd64.s sqrt_arm.s
sqrt_386.s
32 비트 프로세서, sqrt_amd64.s
amd64 등 의 컴파일러에서 읽을 수 있습니다 .
그것의 유효한 값 중 하나 일 수있는 GOOS
및 / 또는 GOARCH
( 심판 .
file_windows_amd64.go
win64에서만 실행됩니다.
참고 URL : https://stackoverflow.com/questions/25161774/what-are-conventions-for-filenames-in-go
'ProgramingTip' 카테고리의 다른 글
Python : Python 함수를 지불해야합니까? (0) | 2020.10.05 |
---|---|
golang 인터랙티브 디버거가 있습니까? (0) | 2020.10.05 |
Git 저장소의 기록 축소 (0) | 2020.10.05 |
케이스 클래스 컴패니언에서 적용을 재정의하는 방법 (0) | 2020.10.05 |
동시 프로그래밍의 맥락에서 "데이터 경합"과 "경쟁 조건"은 실제로 것입니다. (0) | 2020.10.05 |