Explicación detallada de la cadena de herramientas Go (1): corrija la herramienta Go sin preocuparse por actualizar la versión

ir a la función de reparación de herramientas

go tool fix es un comando en la cadena de herramientas Go. Su función es corregir todos los códigos de la versión anterior en el paquete de códigos del programa Go especificado a los códigos de la nueva versión (la versión mencionada aquí es la versión Golang). Después de actualizar la versión Go, use este comando para realizar automáticamente los cambios necesarios en el programa.

Durante la evolución de Golang, es inevitable mejorar algunas funciones y bibliotecas estándar. Pueden surgir problemas de compatibilidad durante el proceso de mejora. Una vez que ocurren los problemas de compatibilidad, el costo de actualizar de la versión anterior a la nueva versión será relativamente alto. And go tool fix puede corregir automáticamente los problemas de compatibilidad causados ​​por la actualización y minimizar el costo de la versión de actualización.

Cómo usar la corrección de la herramienta go y ejemplos

El uso básico del comando go tool fix es el siguiente:

go tool fix [-r name,...] [path ...]

Si no se especifica una ruta, se lee la entrada estándar y los resultados se escriben en la salida estándar. Si la ruta especificada es un archivo, el archivo especificado se reescribe en el lugar (la operación de reescritura es idempotente). Si la ruta especificada es un directorio, se sobrescribirán todos los archivos con el sufijo .go en el directorio. Cuando se reescribe un archivo, se genera una línea de error estándar que proporciona el nombre del archivo y las reescrituras aplicadas. Mira un ejemplo:

package main

import (
	"golang.org/x/net/context"
)

func main() {
	var ctx context.Context
	ctx.Value("luduoxin")
}

Ejecute el comando:

$ go tool fix main.go          

reader.go: fixed context

Luego, el contenido del archivo fuente se convierte en el siguiente:

package main

import (
	"context"
)

func main() {
	var ctx context.Context
	ctx.Value("luduoxin")
}

Si se establece el indicador -diff, el archivo no se reescribirá y se imprimirá la diferencia antes y después de la corrección. Tome el código anterior antes de la corrección como ejemplo, ejecute el comando para ver el efecto:

$ go tool fix -diff main.go      
main.go: fixed context
diff main.go fixed/main.go
--- /var/folders/_6/ftdrl7pd4f34ndx_mkzv2zxh0000gn/T/go-fix3344770880   2023-07-17 21:59:08
+++ /var/folders/_6/ftdrl7pd4f34ndx_mkzv2zxh0000gn/T/go-fix273913435    2023-07-17 21:59:08
@@ -1,7 +1,7 @@
 package main
 
 import (
-       "golang.org/x/net/context"
+       "context"
 )
 
 func main() {
   
   

La función del indicador -r es realizar solo la operación de corrección especificada en el archivo de origen de destino. El valor del indicador es el nombre de la operación de corrección permitida, y varios nombres están separados por comas. Por ejemplo:

 $ go tool fix -r=context main.go 

Las operaciones de corrección incluyen buildtag, cftype, context, egl, eglconf, gotypes, jni, netipv6zone.

La función del indicador -force es forzar la operación de corrección especificada incluso si el código en el archivo fuente ya coincide con la versión de Go utilizada.

$ go tool fix -force=context main.go

Para un uso más detallado de la corrección de la herramienta go, puede usar el comando ejecutar corrección de la herramienta go -ayuda para ver.

ir al escenario de uso de reparación de herramientas

  • Después de actualizar la versión de Go, se puede ajustar la ruta de importación de algunos paquetes de software, se puede ajustar una función, un método o un nombre de constante, o se puede usar una nueva función o método para reemplazar la función o el método anterior. Use la corrección de la herramienta go para solucionar automáticamente estos problemas en el código anterior.
  • go tool fix puede solucionar automáticamente algunos problemas de formato en el código, como espacios faltantes, importaciones repetidas, etc.

Cabe señalar que go tool fix no puede resolver todos los problemas y, en muchos casos, aún es necesario modificar manualmente el código. Antes de usar go tool fix para reparar el código, se recomienda hacer una copia de seguridad primero.

resumen

go tool fix puede ayudar a solucionar automáticamente algunos problemas comunes y problemas de compatibilidad, especialmente después de actualizar la versión Go, puede solucionar automáticamente los problemas de compatibilidad causados ​​por la actualización, lo que resuelve perfectamente las preocupaciones de la versión actualizada.

Supongo que te gusta

Origin blog.csdn.net/luduoyuan/article/details/131776663
Recomendado
Clasificación