ไปให้ REPL หรือไม่


200

สภาพแวดล้อมแบบโต้ตอบมีประโยชน์มากสำหรับโปรแกรมเมอร์ อย่างไรก็ตามดูเหมือนว่า Go จะไม่ได้ให้บริการ ความเข้าใจของฉันถูกต้องหรือไม่

คำตอบ:


164

ไม่ไปไม่ได้ให้บริการ REPL

อย่างไรก็ตามตามที่ได้กล่าวไปแล้วGo Playground (นี่คือ URL ใหม่) มีประโยชน์มาก ผู้เขียนไปที่ยังคิดเกี่ยวกับการเพิ่มตัวแก้ไขคุณสมบัติที่หลากหลาย

ถ้าคุณต้องการบางสิ่งบางอย่างในท้องถิ่นพิจารณาติดตั้งhsandbox การรันอย่างง่ายดายด้วยhsandbox goจะแบ่งหน้าจอเทอร์มินัลของคุณ (ด้วยscreen) ซึ่งคุณสามารถเขียนโค้ดที่ด้านบนและดูผลลัพธ์การประมวลผลที่ด้านล่างของทุกการบันทึก

มีgotryคำสั่ง Go มาตรฐานซึ่งใช้ในการประเมินนิพจน์ (ด้วยชื่อแพ็กเกจเผื่อเลือก) และสามารถรันเหมือนgotry 1+2และgotry fmt 'Println("hello")'จากเชลล์ ไม่สามารถใช้งานได้อีกต่อไปเพราะมีผู้ใช้ไม่มาก

ฉันยังได้เห็นโครงการของบุคคลที่สามสำหรับการสร้าง REPL เพื่อไป แต่ตอนนี้ฉันสามารถค้นหาเชื่อมโยงไปยังสองของพวกเขา: IGOและไป repl พวกเขาทำงานได้ดีแค่ไหนฉันไม่รู้

สองเซ็นต์ของฉัน: ความเร็วในการคอมไพล์ทำให้สามารถเขียน REPL ได้สำหรับ Go เนื่องจากช่วยสร้างเครื่องมือที่กล่าวถึงที่นี่ด้วย แต่ความเร็วเดียวกันทำให้ REPL จำเป็นน้อยกว่า ทุกครั้งที่ฉันต้องการทดสอบบางอย่างใน Go ที่ฉันไม่สามารถเรียกใช้ใน Playground ฉันเปิด.goไฟล์ง่าย ๆและเริ่มการเข้ารหัสและเพียงเรียกใช้รหัส สิ่งนี้จะง่ายยิ่งขึ้นเมื่อgoคำสั่งใน Go 1 ทำให้กระบวนการสร้างคำสั่งเดียวเป็นไปได้และง่ายขึ้น

UPDATE:goคำสั่งGo เพิ่มรายสัปดาห์ล่าสุดซึ่งสามารถใช้สร้างไฟล์ได้ง่ายมาก: เขียนprog.goไฟล์และเรียกใช้go build prog.go && ./prog

อัพเดท 2 : ด้วย Go 1 คุณสามารถเรียกใช้โปรแกรม Go โดยตรงได้go run filename.go

UPDATE 3 : goreเป็นโครงการใหม่ที่น่าสนใจ


TL; DR igo อื่น ๆ : เลือดไม่สะดวกมากเนื่องจากต้องวางและ Ctrl-D สิ่งที่ต้องการ Reinteract for Go น่าจะเป็น awesomesauce

4
ดูเหมือนจะมีสองโครงการ REPL เรียกว่า "เลือด" อันนี้มีการคงไว้อย่างแข็งขันมากกว่าคำตอบ: github.com/motemen/gore
Bijan

1
ฮาฉันเพิ่งจะโพสต์สิ่งเดียวกัน ฉันเพิ่งเล่นกับmotemen/goreมัน - มันค่อนข้างดี
Darragh Enright

github.com/motemen/gore gore ค่อนข้างดีและใช้งานง่าย
Junv

56

ลอง motemen / gore

อีกหนึ่งรายการ REPL ที่ใช้งานได้ดี ให้ความสำคัญกับการแก้ไขบรรทัดการเติมโค้ดให้สมบูรณ์และอื่น ๆ

https://github.com/motemen/gore

ป้อนคำอธิบายรูปภาพที่นี่


8

นอกจากนี้คุณยังมีโครงการ (มีนาคม 2013) ล่าสุดที่เรียกว่ากอร์จากศรีราชาศรีนิวาสัสซึ่งมีประโยชน์:

กอร์เป็นผู้ประเมินบรรทัดคำสั่งสำหรับรหัส golang - REPL โดยไม่ต้องวนซ้ำถ้าคุณจะ
มันจะเปลี่ยนสำหรับสนามเด็กเล่นไปในขณะที่ทำให้มันง่ายมากที่จะโต้ตอบลองบิตของรหัส: ขวิดโดยอัตโนมัติซัพพลายรหัสหม้อไอน้ำแผ่นเช่นการนำเข้าและแพคเกจการประกาศและเสื้อคลุมฟังก์ชั่นหลัก
นอกจากนี้เนื่องจากมันทำงานบนคอมพิวเตอร์ของคุณเองจึงไม่มีการปฏิเสธรหัสในเรื่องความปลอดภัย (ซึ่งแตกต่างจากโหมด sandbox ปลอดภัยของสนามเด็กเล่น)


7

คุณได้ลองสนามเด็กเล่นไปหรือไม่?

เกี่ยวกับ Go Playground

The Go Playground เป็นบริการบนเว็บที่ทำงานบนเซิร์ฟเวอร์ของ golang.org บริการได้รับโปรแกรม Go คอมไพล์ลิงก์และรันโปรแกรมภายในกล่องทรายแล้วส่งคืนเอาต์พุต


4

หากคุณเป็นผู้ใช้ Vim ปลั๊กอิน vim-go ( https://github.com/fatih/vim-go ) ให้คำสั่ง (GoRun) เพื่อเรียกใช้และพิมพ์เอาต์พุตของบัฟเฟอร์ปัจจุบัน คุณยังต้องรวมรหัสสำเร็จรูปทั้งหมดของไฟล์ Go หลัก แต่ก็ยังมีวิธีที่สะดวกในการทดสอบตัวอย่างโค้ดในสภาพแวดล้อมท้องถิ่นของคุณ

ป้อนคำอธิบายรูปภาพที่นี่

HTH


วิธีที่จะทำให้การส่งออก GoRun ในbuffer。my vim ปัจจุบันแสดงให้เห็นว่าในเปลือก
พเนจร

เป็นกลุ่มไปทุกทาง! อย่างไรก็ตามเพื่อทำขั้นตอนต่อไปฉันจะลบรหัสจานหม้อไอน้ำใส่ 'package_test.go' ของฉันในบัฟเฟอร์ที่แยกและให้ใช้การตอก: GoTest &: GoCoverage 2 เซนต์ของฉัน ...
rolandvarga

3

GoSpeccyโครงการรวมถึง REPL ในตัวของเซตที่ จำกัด ของภาษาไป การดำเนินการคือการใช้goeval


2

ไม่ แต่คุณสามารถใช้ประโยชน์จากความเร็วในการรวบรวม (ดังที่กล่าวไว้ในคำตอบอื่น ๆ )

ดูrangoที่ใช้วนรอบการคอมไพล์รันเพื่อเลียนแบบ REPL คุณสามารถเริ่มด้วยการนำเข้าและคำสั่งเพื่อเริ่มเซสชันแบบโต้ตอบ


2

ฉันโชคดีกับตัวดีบัก VSCode แต่ก็มีข้อ จำกัด ในขณะที่คุณไม่สามารถเรียกใช้ฟังก์ชั่นการโทรจากคอนโซลการดีบักการดีบัก: ฟังก์ชั่นการโทรไม่รองรับ # 2225#

โดยทั่วไปคุณตั้งค่าเบรกพอยต์หลังจากกำหนดค่าlaunch.jsonไฟล์ของคุณอย่างถูกต้อง จากนั้นคุณสามารถเจาะลึกด้านซ้ายในแถบด้านข้างตัวแปรและป้อนนิพจน์ตัวแปรในคอนโซลการดีบัก การดีบักไฟล์ go ใน VSCode เพื่อวิปัสสนาผ่านดีบักเกอร์





0

Go code สามารถทำงานในลักษณะคล้าย REPL ใน Visual Studio Code ด้วยส่วนขยาย Go และส่วนขยาย Code Runner คลิกเรียกใช้สามเหลี่ยม▶ซึ่งทำเครื่องหมายด้วยเคอร์เซอร์ของเมาส์ในภาพหน้าจอด้านล่างเพื่อเรียกใช้รหัสและแสดงผลลัพธ์ในบานหน้าต่างผลลัพธ์ที่ด้านล่างของรหัส Visual Studio

เมื่อการเขียนโปรแกรมด้วย Go Visual Studio Code จะแนะนำส่วนขยาย Go เพิ่มเติมที่สามารถติดตั้งเพื่อขยายฟังก์ชันการทำงานของ Visual Studio Code

ไปทำงานใน Visual Studio Code

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.