Si solo corres go run test1.go
y ese archivo tiene una referencia a una función en otro archivo dentro del mismo paquete, se producirá un error porque no le dijo a Go que ejecutara todo el paquete, le dijo que solo ejecutara ese archivo.
Puede indicar que go se ejecute como un paquete completo agrupando los archivos como un paquete en la ejecución con comas de varias formas. Aquí hay algunos ejemplos (si su terminal está en el directorio de su paquete):
go run ./
O
go run test1.go test2.go
O
go run *.go
Puede esperar el mismo comportamiento usando el comando de compilación, y después de ejecutar el ejecutable creado se ejecutará como un paquete agrupado, donde los archivos conocen las funciones de los demás, etc. Ejemplo:
go build ./
O
go build test1.go test2.go
O
go build *.go
Y luego, simplemente llamar al ejecutable desde la línea de comando le dará una salida similar a usar el comando de ejecución cuando ejecutó todos los archivos juntos como un paquete completo. Ex:
./test1
O cualquiera que sea el nombre de su archivo ejecutable cuando se creó.
go fmt
? ¿Como en la terminal o qué? ¿Cómo demuestra que le importa algo?