Si vous venez d'exécuter go run test1.go
et que ce fichier a une référence à une fonction dans un autre fichier dans le même package, une erreur se produira car vous n'avez pas dit à Go d'exécuter l'ensemble du package, vous lui avez dit de n'exécuter que ce fichier.
Vous pouvez dire à go de s'exécuter en tant que package complet en regroupant les fichiers en tant que package dans l'exécution de plusieurs manières. Voici quelques exemples (si votre terminal est dans le répertoire de votre package):
go run ./
OU
go run test1.go test2.go
OU
go run *.go
Vous pouvez vous attendre au même comportement en utilisant la commande build, et après avoir exécuté l'exécutable créé, il s'exécutera comme un package groupé, où les fichiers connaissent les autres fonctions, etc. Exemple:
go build ./
OU
go build test1.go test2.go
OU
go build *.go
Et ensuite, simplement appeler l'exécutable à partir de la ligne de commande vous donnera une sortie similaire à l'utilisation de la commande run lorsque vous avez exécuté tous les fichiers ensemble comme un package complet. Ex:
./test1
Ou quel que soit le nom de votre fichier exécutable qui est appelé lors de sa création.
go fmt
? Comme dans le terminal ou quoi? Comment cela montre-t-il qu'il se soucie de quoi que ce soit?