Est-ce que Go fournit REPL?


200

L'environnement interactif est TRÈS utile pour un programmeur. Cependant, il semble que Go ne le fournisse pas. Ma compréhension est-elle correcte?

Réponses:


164

Non, Go ne fournit pas de REPL.

Cependant, comme déjà mentionné, Go Playground (c'est la nouvelle URL) est très pratique. Les auteurs Go envisagent également d'y ajouter un éditeur riche en fonctionnalités.

Si vous voulez quelque chose de local, envisagez d'installer hsandbox . L'exécuter simplement avec hsandbox godivisera votre écran de terminal (avecscreen exécuter ) où vous pouvez écrire du code en haut et voir sa sortie d'exécution en bas à chaque sauvegarde.

Il y avait une gotryparmi les commandes Go standard, qui évaluaient les expressions (avec un nom de package facultatif), et pouvaient être exécutées comme gotry 1+2et gotry fmt 'Println("hello")'depuis le shell. Il n'est plus disponible car peu de gens l'ont utilisé.

J'ai également vu des projets tiers pour construire un REPL pour Go, mais maintenant je ne peux trouver que des liens vers deux d'entre eux: igo et go-repl . Comment ça marche, je ne sais pas.

Mes deux cents: la vitesse de compilation rend l'écriture d'un REPL possible pour Go, car elle a également aidé à construire les outils mentionnés ici, mais la même vitesse rend le REPL moins nécessaire. Chaque fois que je veux tester quelque chose dans Go que je ne peux pas exécuter dans Playground, j'ouvre un .gofichier simple, je commence à coder et je lance simplement le code. Ce sera encore plus facile lorsque lego commande dans Go 1 rend le processus de construction à une seule commande possible et beaucoup plus facile.

MISE À JOUR: Dernière version hebdomadaire de la gocommande Go ajoutée qui peut être utilisée pour créer très facilement un fichier: écrivez votre prog.gofichier et exécutezgo build prog.go && ./prog

MISE À JOUR 2 : Avec Go 1, vous pouvez exécuter directement des programmes go avecgo run filename.go

UPDATE 3 : goreest un nouveau projet qui semble intéressant.


TL; DR igo Autres: Gore n'est pas très pratique car il nécessite un collage et Ctrl-D. Quelque chose comme Reinteract for Go serait génial.

4
Il semble y avoir deux projets REPL appelés "gore". Celui-ci est plus activement maintenu que celui de la réponse: github.com/motemen/gore
Bijan

1
Ha, j'étais sur le point de poster la même chose. Je viens de jouer avec motemen/gore- c'est plutôt bien.
Darragh Enright

github.com/motemen/gore gore est assez bon et simple à utiliser.
juin 2018


8

Vous avez également un projet récent (mars 2013) appelé gore de Sriram Srinivasan , qui peut être utile:

gore est un évaluateur en ligne de commande pour le code golang - un REPL sans boucle, si vous voulez.
Il remplace le terrain de jeu de go, tout en facilitant beaucoup les tests interactifs de code: gore fournit automatiquement du code de plaque chauffante comme les déclarations d'importation et de package et un wrapper de fonction principale .
De plus, comme il s'exécute sur votre propre ordinateur, aucun code n'est rejeté pour des raisons de sécurité (contrairement au mode bac à sable sécurisé de Go Playground).


7

Avez-vous essayé le Go Playground ?

À propos de Go Playground

The Go Playground est un service Web qui s'exécute sur les serveurs de golang.org. Le service reçoit un programme Go, compile, lie et exécute le programme dans un bac à sable, puis renvoie la sortie.


4

Si vous êtes un utilisateur Vim, le plugin vim-go ( https://github.com/fatih/vim-go ) fournit une commande (GoRun) pour exécuter et imprimer la sortie du tampon actuel. Vous devez toujours inclure tout le code standard d'un fichier Go principal, mais il fournit toujours un moyen pratique de tester rapidement des extraits de code dans votre environnement local.

entrez la description de l'image ici

HTH


comment faire la sortie GoRun dans le tampon actuel。 mon vim, afficher cela dans le shell
vagabond

vim-go tout le chemin! Cependant, pour aller plus loin, je supprimerais le code de la plaque de la chaudière, mettrais mon «package_test.go» dans le tampon divisé et continuer à marteler: GoTest &: GoCoverage. My 2 cents ...
rolandvarga

3

Le projet GoSpeccy comprend une REPL intégrée d'un sous-ensemble restreint de la langue Go. L'implémentation utilise goeval .


2

Non, mais vous pouvez exploiter la vitesse de compilation (comme mentionné dans d'autres réponses).

Jetez un oeil à rango qui utilise une boucle générer-compiler-exécuter pour imiter un REPL. Vous pouvez également le démarrer avec des importations et des instructions pour démarrer une session interactive.


2

J'ai eu de la chance avec le débogueur VSCode, mais il est assez limité dans la mesure où vous ne pouvez pas appeler les appels de fonction à partir de la console de débogage Debug: Function Calls not supported # 2225 .

Fondamentalement, vous définissez un point d'arrêt après avoir correctement configuré votre launch.jsonfichier. Ensuite, vous pouvez explorer vers le bas à gauche dans la barre latérale des variables et entrer des expressions de variable dans la console de débogage. Débogage du fichier go dans VSCode pour introspecter via le débogueur





0

Le code Go peut être exécuté de manière REPL dans Visual Studio Code avec l'extension Go et l'extension Code Runner. Cliquez sur le triangle Exécuter ▶ qui est marqué par le curseur de la souris dans la capture d'écran ci-dessous pour exécuter le code et afficher les résultats dans le volet Sortie en bas de Visual Studio Code.

Lors de la programmation avec Go Visual Studio Code, des extensions Go supplémentaires peuvent être installées pour étendre les fonctionnalités de Visual Studio Code.

Allez courir dans Visual Studio Code

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.