Si vous utilisez le package osext par kardianos et que vous devez tester localement, comme l'a commenté Derek Dowling:
Cela fonctionne bien jusqu'à ce que vous souhaitiez l'utiliser avec go run main.go pour le développement local. Je ne sais pas comment mieux contourner cela sans construire un exécutable au préalable à chaque fois.
La solution est de créer un utilitaire gorun.exe au lieu d'utiliser go run. L'utilitaire gorun.exe compilerait le projet en utilisant «go build», puis l'exécuterait juste après, dans le répertoire normal de votre projet.
J'ai eu ce problème avec d'autres compilateurs et je me suis retrouvé à faire ces utilitaires car ils ne sont pas fournis avec le compilateur ... c'est particulièrement mystérieux avec des outils comme C où vous devez compiler et lier puis l'exécuter (trop de travail).
Si quelqu'un aime mon idée de gorun.exe (ou elf), je le téléchargerai probablement sur github bientôt ..
Désolé, cette réponse se veut un commentaire, mais je ne peux pas faire de commentaire car je n'ai pas encore une réputation assez grande.
Alternativement, "go run" pourrait être modifié (s'il n'a pas déjà cette fonctionnalité) pour avoir un paramètre tel que "go run -notemp" pour ne pas exécuter le programme dans un répertoire temporaire (ou quelque chose de similaire). Mais je préférerais simplement taper gorun ou "gor" car il est plus court qu'un paramètre alambiqué. Gorun.exe ou gor.exe devraient être installés dans le même répertoire que votre compilateur go
Implémenter gorun.exe (ou gor.exe) serait trivial, comme je l'ai fait avec d'autres compilateurs en seulement quelques lignes de code ... (derniers mots célèbres ;-)