Go có cung cấp REPL không?


200

Môi trường tương tác RẤT hữu ích cho một lập trình viên. Tuy nhiên, dường như Go không cung cấp nó. Tôi hiểu có đúng không?

Câu trả lời:


164

Không, Go không cung cấp REPL.

Tuy nhiên, như đã đề cập, Go Playground (đây là URL mới) rất tiện dụng. Các tác giả Go cũng đang suy nghĩ về việc thêm một trình soạn thảo giàu tính năng cho nó.

Nếu bạn muốn một cái gì đó cục bộ, hãy xem xét việc cài đặt hsandbox . Chạy nó đơn giản với hsandbox gosẽ phân chia màn hình thiết bị đầu cuối của bạn (với screen) nơi bạn có thể viết mã ở trên cùng và xem đầu ra thực hiện của nó ở phía dưới trên mỗi lần lưu.

Có một gotrytrong số các lệnh Go tiêu chuẩn, được sử dụng để đánh giá các biểu thức (với tên gói tùy chọn) và có thể được chạy như gotry 1+2gotry fmt 'Println("hello")'từ shell. Nó không còn có sẵn vì không có nhiều người thực sự sử dụng nó.

Tôi cũng đã thấy các dự án của bên thứ ba để xây dựng REPL cho Go, nhưng bây giờ tôi chỉ có thể tìm thấy các liên kết đến hai trong số chúng: igogo-repl . Làm thế nào tốt họ làm việc tôi không biết.

Hai xu của tôi: Tốc độ biên dịch làm cho việc viết REPL có thể thực hiện được cho Go, vì nó cũng đã giúp xây dựng các công cụ được đề cập ở đây, nhưng tốc độ tương tự làm cho REPL không cần thiết. Mỗi lần tôi muốn kiểm tra thứ gì đó trong Go mà tôi không thể chạy trong Playground, tôi mở một .gotệp đơn giản và bắt đầu mã hóa và chỉ cần chạy mã. Điều này sẽ còn dễ dàng hơn nữa khi golệnh trong Go 1 làm cho quá trình xây dựng một lệnh có thể và dễ dàng hơn.

CẬP NHẬT: Bản phát hành hàng tuần mới nhất của golệnh Go được thêm vào để có thể dễ dàng xây dựng tệp: ghi prog.gotệp của bạn và chạygo build prog.go && ./prog

CẬP NHẬT 2 : Với Go 1, bạn có thể trực tiếp chạy các chương trình đi vớigo run filename.go

CẬP NHẬT 3 : gorelà một dự án mới có vẻ thú vị.


TL; DR igo Khác: Gore không thuận tiện lắm vì nó yêu cầu dán và Ctrl-D. Một cái gì đó như Reinteract for Go sẽ là awesomesauce.

4
Dường như có hai dự án REPL được gọi là "gore". Câu hỏi này được duy trì tích cực hơn câu trả lời: github.com/motemen/gore
Bijan

1
Ha, tôi chỉ định đăng điều tương tự. Tôi vừa mới chơi motemen/goreở đó - nó khá tốt.
Darragh Enright

github.com/motemen/gore gore khá tốt và đơn giản để sử dụng.
Junv


8

Bạn cũng có một dự án gần đây (tháng 3 năm 2013) được gọi là gore từ Sriram Srinivasan , có thể hữu ích:

gore là một công cụ đánh giá dòng lệnh cho mã golang - REPL không có vòng lặp, nếu bạn muốn.
Nó là sự thay thế cho sân chơi cờ vây, đồng thời giúp dễ dàng hơn trong việc thử các bit mã: gore tự động cung cấp mã nồi hơi như khai báo và nhập gói và trình bao hàm chức năng chính .
Ngoài ra, vì nó chạy trên máy tính của riêng bạn, không có mã nào bị từ chối vì lý do bảo mật (không giống như chế độ hộp cát an toàn của sân chơi).


7

Bạn đã thử Go Playground chưa?

Giới thiệu về sân chơi cờ vây

Go Playground là một dịch vụ web chạy trên các máy chủ của golang.org. Dịch vụ nhận chương trình Go, biên dịch, liên kết và chạy chương trình bên trong hộp cát, sau đó trả về đầu ra.


4

Nếu bạn là người dùng Vim, plugin vim-go ( https://github.com/fatih/vim-go ) cung cấp lệnh (GoRun) để chạy và in đầu ra của bộ đệm hiện tại. Bạn vẫn phải bao gồm tất cả mã soạn sẵn của tệp Go chính, nhưng nó vẫn cung cấp một cách thuận tiện để kiểm tra nhanh các đoạn mã trong môi trường cục bộ của bạn.

nhập mô tả hình ảnh ở đây

HTH


làm thế nào có thể tạo đầu ra GoRun trong bộ đệm hiện tại, hiển thị nó trong trình bao
vagabond

vim-go tất cả các cách! Tuy nhiên, để tiến thêm một bước nữa, tôi sẽ xóa mã tấm nồi hơi, đặt 'gói_test.go' của tôi vào bộ đệm tách và tiếp tục gõ: GoTest &: GoCoverage. 2 xu của tôi ...
rolandvarga

3

Các GoSpeccy dự án bao gồm một REPL dựng sẵn của một tập hợp con hạn chế của ngôn ngữ Go. Việc thực hiện đang sử dụng goeval .


2

Không, nhưng bạn có thể khai thác tốc độ biên dịch (như đã đề cập trong các câu trả lời khác).

Hãy xem rango sử dụng vòng lặp tạo-biên dịch-chạy để bắt chước REPL. Bạn cũng có thể bắt đầu nó với nhập khẩu và báo cáo để bắt đầu một phiên tương tác.


2

Tôi đã gặp một chút may mắn với trình gỡ lỗi VSCode, nhưng nó khá hạn chế cho đến khi bạn không thể gọi các cuộc gọi chức năng từ bảng điều khiển gỡ lỗi Gỡ lỗi: Các cuộc gọi chức năng không được hỗ trợ # 2225 .

Về cơ bản, bạn đặt điểm dừng sau khi định cấu hình đúng launch.jsontệp của mình . Sau đó, bạn có thể đi sâu vào bên trái trong thanh bên biến và nhập biểu thức biến vào bảng điều khiển gỡ lỗi. Gỡ lỗi đi tệp trong VSCode để hướng nội thông qua trình gỡ lỗi





0

Mã Go có thể được chạy theo cách giống như REPL trong Visual Studio Code với tiện ích mở rộng Go và Code Runner. Nhấp vào tam giác Run ▶ được đánh dấu bằng con trỏ chuột trong ảnh chụp màn hình bên dưới để chạy mã và hiển thị kết quả trong ngăn đầu ra ở dưới cùng của Visual Studio Code.

Khi lập trình với Go Visual Studio Code sẽ đề xuất các tiện ích mở rộng Go bổ sung có thể được cài đặt để mở rộng chức năng của Visual Studio Code.

Chạy trong Visual Studio Code

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.