Go предоставляет REPL? - PullRequest
       2

Go предоставляет REPL?

177 голосов
/ 15 декабря 2011

Интерактивная среда очень полезна для программиста. Однако, похоже, Го этого не предоставляет. Правильно ли мое понимание?

Ответы [ 10 ]

148 голосов
/ 15 декабря 2011

Нет, Go не предоставляет REPL.

Однако, как уже упоминалось, Go Playground (это новый URL) очень удобен. Авторы Go также думают о добавлении в него многофункционального редактора.

Если вы хотите что-то локальное, рассмотрите возможность установки hsandbox . Запуск его просто с помощью hsandbox go разделит экран вашего терминала (с screen), где вы сможете написать код вверху и увидеть результат его выполнения внизу при каждом сохранении.

Среди стандартных команд Go была gotry, которая использовалась для оценки выражений (с необязательным именем пакета) и могла запускаться как gotry 1+2 и gotry fmt 'Println("hello")' из оболочки. Он больше недоступен, потому что на самом деле его использовали немногие люди.

Я также видел сторонние проекты по созданию REPL для Go, но теперь я могу найти ссылки только на два из них: igo и go-repl . Насколько хорошо они работают, я не знаю.

Мои два цента: скорость компиляции делает возможным написание REPL для Go, так как это также помогло создать упомянутые здесь инструменты, но та же скорость делает REPL менее необходимой. Каждый раз, когда я хочу проверить в Go что-то, что не могу запустить в Playground, я открываю простой файл .go, начинаю кодировать и просто запускаю код. Это будет еще проще, когда команда go в Go 1 делает процесс сборки одной командой возможным и намного проще.

ОБНОВЛЕНИЕ: В последнюю еженедельную версию Go добавлена ​​команда go, с помощью которой можно очень легко создать файл: напишите файл prog.go и запустите go build prog.go && ./prog

ОБНОВЛЕНИЕ 2 : С Go 1 вы можете напрямую запускать программы go с go run filename.go

ОБНОВЛЕНИЕ 3 : gore - новый проект, который кажется интересным.

43 голосов
/ 23 февраля 2015

Попробуйте motemen / gore

Еще один Go REPL, который прекрасно работает. Рекомендуется с редактированием строки, завершение кода и многое другое.

https://github.com/motemen/gore

enter image description here

8 голосов
/ 26 марта 2013

У вас также есть недавний (март 2013) проект под названием gore из Sriram Srinivasan , который может быть полезен:

gore - это средство оценки командной строки для кода golang - REPL без цикла, если хотите.
Он заменяет игровую площадку go, значительно упрощая интерактивную проверку фрагментов кода: gore автоматически предоставляет стандартный код, такой как объявления импорта и пакета, а также упаковщик основной функции .
Кроме того, поскольку он работает на вашем собственном компьютере, ни один код не отклоняется по соображениям безопасности (в отличие от безопасного режима песочницы на детской площадке).

7 голосов
/ 15 декабря 2011

Вы пробовали игровую площадку Go ?

Об игровой площадке Go

Go Playground - это веб-сервис, работающий на серверах golang.org. Служба получает программу Go, компилирует, связывает и запускает Программа внутри песочницы, а затем возвращает результат.

4 голосов
/ 09 января 2015

Если вы являетесь пользователем Vim, плагин vim-go (https://github.com/fatih/vim-go) предоставляет команду (GoRun) для запуска и печати вывода текущего буфера. Вам все равно нужно включить весь шаблонный код основной файл Go, но он по-прежнему обеспечивает удобный способ быстрого тестирования фрагментов кода в локальной среде.

enter image description here

НТН

3 голосов
/ 23 августа 2013

Проект GoSpeccy включает встроенный REPL ограниченного подмножества языка Go.Реализация использует goeval .

2 голосов
/ 16 марта 2013

Нет, но вы можете использовать скорость компиляции (как упоминалось в других ответах).

Взгляните на rango , который использует цикл выполнения генерации-компиляции для имитации REPL. Вы также можете запустить его с помощью импорта и операторов, чтобы начать интерактивный сеанс.

1 голос
/ 31 августа 2015

Гоша - это интерактивная оболочка Голанга. Цель состоит в том, чтобы предоставить простую в использовании интерактивную среду выполнения.

https://github.com/mkouhei/gosh

0 голосов
/ 10 августа 2018

Пожалуйста, также проверьте www.gorepl.com для go REPL и других REPL

0 голосов
/ 20 июня 2018

Вы также можете попробовать https://github.com/haya14busa/goplay Это позволяет запускать файлы кодов Go с вашего терминала прямо на игровую площадку Go

...