Go REPL sağlıyor mu?


201

Etkileşimli ortam bir programcı için ÇOK faydalıdır. Ancak, Go bunu sağlamaz gibi görünüyor. Anlayışım doğru mu?

Yanıtlar:


164

Hayır, Go bir REPL sağlamaz.

Ancak, daha önce de belirtildiği gibi, Go Playground (bu yeni URL'dir) çok kullanışlıdır. Go Yazarları da zengin özelliklere sahip bir editör eklemeyi düşünüyor.

Yerel bir şey istiyorsanız, hsandbox'ı yüklemeyi düşünün . Sadece ile çalıştırmak hsandbox goterminal ekranınızı bölerek screenüstte kod yazabilir ve her kaydetme işleminde altta yürütme çıktısını görebilirsiniz.

gotryİfadeleri (isteğe bağlı paket adıyla) değerlendirmek için kullanılan gotry 1+2ve gotry fmt 'Println("hello")'kabuk gibi ve kabuktan çalıştırılabilen standart Go komutları arasında bir tane vardı . Artık kullanılamıyor çünkü aslında pek çok kişi kullanmıyor.

Go için bir REPL oluşturmak için üçüncü taraf projeleri de gördüm, ancak şimdi sadece ikisine bağlantı bulabilirim: igo ve go-repl . Ne kadar iyi çalışıyorlar bilmiyorum.

İki sentim: Derleme hızı Go için bir REPL yazmayı mümkün kılıyor, çünkü burada belirtilen araçların oluşturulmasına da yardımcı oldu, ancak aynı hız REPL'i daha az gerekli kılıyor. Go'da Playground'da çalışamayacağım bir şeyi test etmek istediğim her zaman basit bir .godosya açıp kodlamaya başlayıp kodu çalıştırıyorum. goGo 1'deki komut bir komut oluşturma işlemini mümkün ve kolay hale getirdiğinde bu daha da kolay olacaktır .

GÜNCELLEME:go Bir dosyayı kolayca oluşturmak için kullanılabilecek Go eklenen komutunun en son haftalık sürümü : prog.godosyanızı yazın ve çalıştırıngo build prog.go && ./prog

GÜNCELLEME 2 : Go 1 ile go programlarını doğrudango run filename.go

GÜNCELLEME 3 : goreilginç görünen yeni bir projedir.


TL; DR igo Diğerleri: Gore, yapıştırma ve Ctrl-D gerektirdiği için çok uygun değildir. Go için Reinteract gibi bir şey harika olurdu.

4
"Gore" adı verilen iki REPL projesi var gibi görünüyor. Bu, yanıtdakinden
Bijan

1
Ha, aynı şeyi göndermek üzereydim. Sadece motemen/goreorada oynuyorum - oldukça iyi.
Darragh Enright

github.com/motemen/gore gore oldukça iyi ve kullanımı kolaydır.
Junv


8

Ayrıca , Sriram Srinivasan'dan gore adı verilen ve faydalı olabilecek yeni bir (Mart 2013) projeniz var :

gore, golang kodu için bir komut satırı değerlendiricisidir - eğer isterseniz döngüsüz bir REPL.
Go oyun alanının yerini alırken, kod parçalarını etkileşimli olarak denemeyi çok daha kolay hale getirir: gore, ithalat ve paket bildirimleri ve ana işlev sargısı gibi kazan plakası kodunu otomatik olarak sağlar .
Ayrıca, kendi bilgisayarınızda çalıştığından, güvenlik gerekçesiyle hiçbir kod reddedilmez (oyun alanının güvenli sanal alan modunun aksine).


7

Go Playground'u denediniz mi?

Go Playground Hakkında

Go Playground, golang.org'un sunucularında çalışan bir web hizmetidir. Hizmet bir Git programı alır, programı bir sanal alanın içinde derler, bağlar ve çalıştırır, sonra çıktıyı döndürür.


4

Bir Vim kullanıcısıysanız, vim-go eklentisi ( https://github.com/fatih/vim-go ) geçerli arabellek çıktısını çalıştırmak ve yazdırmak için bir komut (GoRun) sağlar. Yine de bir ana Go dosyasının tüm kaynak kodu kodunu eklemeniz gerekir, ancak yine de yerel ortamınızdaki kod snippet'lerini hızlı bir şekilde test etmek için uygun bir yol sağlar.

resim açıklamasını buraya girin

HTH


nasıl mevcut buffer。my vim GoRun çıkış yapabilir, kabuk içinde görüntülemek
vagabond

vim-go sonuna kadar! Ancak, bunu bir adım daha ileri götürmek için, kazan plakası kodunu kaldıracağım, 'package_test.go'yu bölünmüş arabelleğe koyabilir ve çekiçlemeye devam edebilirim: GoTest &: GoCoverage. Benim 2 sent ...
rolandvarga

3

GoSpeccy projesi Git dilinin kısıtlı alt kümesini bir yerleşik repl içerir. Uygulama goeval kullanıyor .


2

Hayır, ancak derleme hızından yararlanabilirsiniz (diğer cevaplarda belirtildiği gibi).

Bir REPL taklit etmek için bir oluşturma-derleme-çalıştırma döngüsü kullanan rango bir göz atın . Etkileşimli bir oturuma başlamak için içe aktarma ve ifadelerle de başlatabilirsiniz.


2

VSCode hata ayıklayıcı ile biraz şansım vardı, ancak bugüne kadar hata ayıklama konsolundan işlev çağrılarını çağıramazsınız oldukça hatalıdır Hata ayıklama: İşlev çağrıları desteklenmez # 2225 .

Temel olarak launch.jsondosyanızı doğru şekilde yapılandırdıktan sonra bir kesme noktası ayarlarsınız . Ardından, değişkenler kenar çubuğunda solda detaya inebilir ve hata ayıklama konsoluna değişken ifadeler girebilirsiniz. Hata ayıklayıcı aracılığıyla introspect için VSCode dosyasında hata ayıklama





0

Go kodu, Go uzantısı ve Code Runner uzantısıyla Visual Studio Code'da REPL benzeri bir şekilde çalıştırılabilir. Kodu çalıştırmak ve sonuçları Visual Studio Kodunun altındaki Çıktı bölmesinde göstermek için aşağıdaki ekran görüntüsünde fare imleci ile işaretlenen Üçgeni çalıştır ▶ seçeneğini tıklatın.

Go Visual Studio Code ile programlama yaparken, Visual Studio Code'un işlevselliğini genişletmek için yüklenebilecek ek Go uzantıları önerecektir.

Visual Studio Code ile çalışmaya başlayın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.