Предоставляет ли RE REPL?

Интерактивная среда ОЧЕНЬ полезна для программиста. Однако, похоже, Go не предоставляет его. Правильно ли я понимаю?

Ответ 1

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

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

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

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

Но чтобы ответить на ваш основной вопрос: нет, Go не предоставляет 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

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

Ответ 2

Попробуйте мотыги /gore

Еще один Go REPL, который работает красиво. Показанный с редактированием линии, завершение кода и т.д.

https://github.com/motemen/gore

enter image description here

Ответ 3

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

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

Ответ 4

Вы пробовали Go Playground?

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

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

Ответ 5

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

Ответ 6

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

enter image description here

НТН

Ответ 7

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

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

Ответ 8

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

https://github.com/mkouhei/gosh