Pude encontrar las convenciones para nombrar paquetes en Go: sin subrayado entre palabras, todo en minúsculas.
¿Esta convención se aplica también a los nombres de archivo?
¿También coloca una estructura en un archivo como si lo hiciera para una clase java y luego nombra el archivo después de la estructura?
Actualmente, si tengo una estructura WebServer, la guardo en un archivo web_server.go.
go
naming-conventions
david
fuente
fuente
Respuestas:
Hay algunas pautas a seguir.
_test.go
solo los compila y ejecuta lago test
herramienta.name_linux.go
, solo se construirán en linux,name_amd64.go
solo se construirán en amd64. Esto es lo mismo que tener una//+build amd64
línea en la parte superior del archivo.Consulte los documentos de la
go build
herramienta para obtener más detalles: https://golang.org/pkg/go/build/fuente
unix
yothers
. Por ejemplo, puedo hacer dos archivosfile_windows.go
yfile_others.go
. Funciona bien. Pero parafile_unix.go
yfile_others.go
no funciona. No quiero crear ocho archivosdarwin freebsg linux openbsd netbsd dragonfly solaris android
.Además de la respuesta proporcionada por JimB , los nombres de los archivos normales son minúsculas, cortos y sin ningún tipo de subrayado o espacio. Generalmente, los nombres de archivo siguen la misma convención que los nombres de paquetes. Ver los nombres de los paquetes sección de Effective Go .
Consulte el paquete strconv para ver un buen ejemplo.
fuente
mycommandsub1command.go
omy_command_sub1command.go
, y qué talmycommandVO
Go es bastante liberal en términos de cómo organiza su código dentro de un paquete, generalmente es lo que mejora la legibilidad y la comprensión de su código. La mejor manera de aprender cómo se hace esto es estudiar los maestros, es decir, echar un vistazo a la biblioteca estándar:
http://golang.org/src/pkg/
Sin embargo, hay 2 reglas en las que puedo pensar. Al especificar el código que se compilará para diferentes plataformas, utilice el nombre de la plataforma como sufijo:
Además, si tiene un archivo llamado
server.go
, las pruebas para ese archivo estarán en formatoserver_test.go
.fuente
_front
,_writer
o_bits
como sufijos significativos en el futuro entonces!go
herramienta es muy restrictiva en cuanto a la estructura del paquete (es una de mis cosas favoritas del idioma). Favorece algunas convenciones muy específicas (un paquete por carpeta [con al menos una excepción], el paquete de la carpeta comparte el mismo nombre que la carpeta [con al menos una excepción], la ruta de importación completa del paquete coincide con la ruta relativa desde$GOPATH
, algunos archivos son tratado de manera diferente según el formato de su nombre, etc.)Go is quite liberal in terms of how you organise your code within a package
. Go no es liberal, es bastante restrictivo. Pero eso es bueno.Por lo general, el subrayado en los nombres de archivo se usa para asignar código de plataforma / solo arco, por ejemplo:
sqrt_386.s
solo será leído por el compilador en procesadores de 32 bits,sqrt_amd64.s
en amd64, etc.Puede ser cualquiera de los valores válidos de
GOOS
y / oGOARCH
( ref .file_windows_amd64.go
solo se compilará en win64.fuente