Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

Formatear su código es una forma importante de mejorar su legibilidad, consistencia y reutilización. El código con el formato adecuado es más fácil de entender, modificar y mantener.

Una de las grandes características de Go son sus convenciones de formato bien definidas. Puede usar el paquete de formato incorporado y el comando go fmt para formatear automáticamente su código. Esto ayudará a garantizar que otros programadores de Go puedan leerlo con la mayor facilidad posible.

El paquete de formato y el comando fmt

El formato paquete implementa el formato estándar para el Ir código fuente. El paquete interactúa con el ir a formatear herramienta de línea de comandos para flexibilidad en el formato del código Go.

El paquete format es un submódulo en el paquete go. Así es como puedes importarlo:

importar"ir/formatear"

Puede examinar la documentación del comando go fmt especificando el ayuda comando ante el fmt dominio:

instagram viewer
ir a ayuda fmt

Especifique un nombre de archivo después del comando fmt para formatear ese archivo. Esto ajustará el espacio en blanco y la sangría de su código para cumplir con los estándares de Go.

ir a fmt main.ir

Detrás de escena, go fmt es un alias para el comando gofmt, específicamente:

gofmt-l-w

Esas banderas hacen que gofmt escriba cualquier cambio en cada archivo que proporcione y enumere los nombres de los archivos que cambia.

Puedes agregar el -X marca al comando fmt. El indicador -x ayuda a escribir los cambios del formateador en el archivo original.

ir fmt -x main.go

El -norte flag funciona de manera similar a -x, pero no realiza cambios. En su lugar, muestra los comandos que go fmt se ejecutarían sin -n:

ir fmt -n main.ir

La bandera le dice al formateador que muestre los cambios, lo que le permite revisarlos antes de aplicarlos.

Aquí hay un programa Go simple que recorre números enteros de cero a cinco e imprime la cadena "¡Hola mundo!".

// formatear un archivo llamado main.go como se muestra en el ejemplo anterior 

paquete principal
importar"fmt"
funciónprincipal() {
variable X En t=5
para yo:=0;i fmt. imprimir("¡Hola Mundo!")
}
}

Formateo del código fuente de Go

El paquete de formato contiene un Fuente función para formatear archivos Go desde programas. Deberá leer el archivo y pasar el contenido como argumentos a la función Fuente.

La función Fuente devolverá el contenido del archivo formateado que puede escribir en el archivo o en uno nuevo.

Puede leer archivos con el Leer archivo función de la ioutil paquete. La función ReadFile toma el nombre del archivo y devuelve el contenido del archivo y un error para su manejo.

contenido del archivo, err := ioutil. Leer archivo ("principal.ir")

si error! = nulo {
registro. Fatalln("Hubo un error al leer el archivo", errar)
}

Pasar el contenido del archivo a la función Fuente devuelve el contenido del archivo formateado y un error de manejo.

formateado, err := formato. Fuente (contenido del archivo)

si error! = nulo {
registro. Fatalln("Hubo un error de formato con la función fuente", errar)
}

Puede escribir el contenido del archivo formateado en el archivo con el Escribir archivo función de la ioutil paquete. La función WriteFile toma el nombre del archivo, el contenido y modo de permiso de archivo, devolviendo cualquier error (s). El modo de permiso solo es relevante si el archivo no existe, en cuyo caso WriteFile lo creará.

El 0644 el modo de permiso de archivo da:

  • El propietario del archivo tiene permisos de lectura y escritura.
  • Leer permisos a otros usuarios del mismo grupo que el propietario.
  • No hay permisos para otros usuarios.
err = ioutil. Escribir archivo ("principal.ir", formateado, 0644)

si error! = nulo {
registro. Fatalln("Hubo un error al escribir el archivo", errar)
}

Alternativamente, puede pasar el código fuente de Go a la función Fuente para formatear. Puede especificar el código en un segmento de bytes usando marcas (`):

paquete principal

importar (
"fmt"
"ir/formatear"
)

funciónprincipal() {
// programa simple que calcula el área de un triángulo con las matemáticas
// función
formateado, err := formato. Fuente([]byte(`
paquete principal
importar(
"fmt"
"matemáticas"
)
funciónprincipal(){
variable a flotar64=3
variable b flotar64=4
variable C flotar64=5
variable s flotar64=(a+b+c)/2
variable área flotar64=matemáticas. Raíz cuadrada (s*(s-a)*(s-b)*(s-c))
fmt. imprimir("El área del triángulo es: ",área)
}
`))

si error! = nulo {
registro. Fatalln("Hubo un error de formato con la función fuente", errar)
} demás {
fmt. imprimir(cadena(formateado))
}
}

Al formatear, deberá convertir el segmento de bytes en una cadena con el cadena función. Aquí está el código fuente formateado.

Personalización del proceso de formateo

Puede personalizar el proceso de formateo con el paquete de formato Configuración estructura La estructura de configuración contiene campos donde puede especificar opciones de formato en la creación de instancias.

importar"ir/formatear"

config := &formato. Configuración{
// Tabwidth establece el número de espacios por tabulación.
Ancho de tabulación: 8,

// UseTabs indica si el formateador debe usar tabulaciones en lugar de
// espacios.
Usar pestañas: FALSO,

// TabIndent se usa para determinar si la sangría inicial debe ser
// hecho usando tabuladores o espacios.
tabulación: verdadero,

// NoFinalTab especifica si se debe eliminar una pestaña final de
// líneas antes de formatearlas.
NoFinalTab: verdadero,

// Espacios especifica si se deben usar espacios para la alineación.
Espacios: verdadero,

// NoTrimTrailingSpace especifica si el espacio en blanco final debe
// ser recortado de líneas antes de que sean formateadas.
NoTrimTrailingSpace: FALSO,
}

Puede usar los campos para personalizar el comportamiento de su formateador configurando las opciones según sus requisitos.

Luego puede usar el método Fuente de esta estructura para formatear un segmento de bytes según su configuración.

funciónprincipal() {
contenido del archivo, err := ioutil. Leer archivo ("principal.ir")

// tenga en cuenta que este es un método de origen del tipo `config`, no del
// paquete `formato` en sí mismo aunque la funcionalidad es la misma,
// necesita adherirse a esto si necesita configurar el formateador
formateado, error := config. Fuente (contenido del archivo)

si error! = nulo {
registro. Fatalln("Hubo un error de formato con el tipo de configuración", errar)
}

ioutil Escribir archivo ("principal.ir", formateado, 0644)
}

Llamando a la configuración. La función Source() como esta formatea el contenido del principal.ir archivo utilizando las opciones de configuración. Devuelve el contenido formateado como un segmento de bytes y un error.

Puede formatear y manipular cadenas en Go

El paquete de formato y el comando go fmt pueden ayudarlo a automatizar su proceso de formateo de código.

Go también proporciona un paquete fmt para formatear cadenas y un paquete strings para manipular cadenas.

El paquete fmt implementa E/S formateadas más simples con funciones análogas a las funciones printf y scanf de C. La función de cadenas implementa funciones simples para manipular cadenas codificadas en UTF-8.