web-dev-qa-db-fra.com

Est-ce que Go fournit REPL?

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?

167
z_axis

Non, Go ne fournit pas de REPL.

Cependant, comme déjà mentionné, Go Playground (il s’agit de la nouvelle URL) est très pratique. Les auteurs de Go pensent également à l’ajout d’un éditeur riche en fonctionnalités.

Si vous voulez quelque chose de local, pensez à installer hsandbox . L'exécuter simplement avec hsandbox go divisera votre écran de terminal (avec screen) où vous pourrez écrire du code en haut et voir sa sortie en bas à chaque sauvegarde.

Il y avait une gotry parmi les commandes Go standard, utilisées pour évaluer les expressions (avec un nom de package facultatif), et pouvant être exécutées comme gotry 1+2 et gotry fmt 'Println("hello")' à partir de Shell. Il n'est plus disponible car peu de gens l'ont utilisé.

J'ai également vu des projets tiers visant à créer un REPL pour Go, mais je ne trouve désormais que des liens vers deux d'entre eux: igo et go-repl . Comment fonctionnent-ils je ne sais pas.

Mes deux cents: la rapidité de compilation rend l’écriture de REPL pour Go, car elle a également contribué à la construction des outils mentionnés ici, mais la même vitesse rend moins nécessaire REPL. Chaque fois que je veux tester quelque chose dans Go que je ne peux pas exécuter dans Playground, j'ouvre un simple fichier .go, commence à coder et exécute simplement le code. Cela sera encore plus facile lorsque la commande go dans Go 1 rendra possible et plus facile le processus de construction à une commande.

UPDATE: Dernière version hebdomadaire de Go ajouté la commande go qui peut être utilisée pour créer très facilement un fichier: écrivez votre fichier prog.go et exécutez go build prog.go && ./prog

UPDATE 2: Avec Go 1, vous pouvez exécuter directement des programmes de go avec go run filename.go

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

139
Mostafa

Essayez motemen/gore

Encore un autre Go REPL qui fonctionne bien. En vedette avec l'édition en ligne, l'achèvement du code, et plus encore.

https://github.com/motemen/gore

enter image description here

40
Bijan

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

gore est un évaluateur de ligne de commande pour le code golang - un REPL sans boucle, si vous voulez.
C’est un remplacement de la cour de récréation, tout en facilitant l’essai interactif de bouts de code: gore fournit automatiquement le code de la plaque chauffante, tel que les déclarations d’import et de package, ainsi qu’un wrapper de fonctions principales.
De plus, puisqu'il fonctionne sur votre propre ordinateur, aucun code n'est rejeté pour des raisons de sécurité (contrairement au mode bac à sable sécurisé du terrain de jeux).

8
VonC

Avez-vous essayé le Go Playground ?

À propos du terrain de jeu

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

7
peterSO

Si vous êtes un utilisateur de 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 constitue néanmoins un moyen pratique de tester rapidement des extraits de code dans votre environnement local. 

enter image description here

HTH

4
Patrick Canfield

Le projet GoSpeccy comprend un élément intégré REPL d'un sous-ensemble restreint du langage Go. L'implémentation utilise goeval .

3
user811773

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

Jetez un coup d'œil à 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
emicklei

Gosh est le shell interactif de Golang. L'objectif est de fournir un environnement d'exécution interactif facile à utiliser.

https://github.com/mkouhei/gosh

1
raittes

Vous pouvez également essayer https://github.com/haya14busa/goplay .__, ce qui vous permet d’exécuter des fichiers de code go directement de votre terminal au terrain de jeu Go. 

0
Montaro

Veuillez également vérifier www.gorepl.com for go REPL et d’autres REPL

0
donvk