Интерактивная среда ОЧЕНЬ полезна для программиста. Однако, похоже, Go не предоставляет его. Правильно ли я понимаю?
Предоставляет ли RE REPL?
Ответ 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
Ответ 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, но он по-прежнему обеспечивает удобный способ быстрого тестирования фрагментов кода в вашей локальной среде.
НТН
Ответ 7
Нет, но вы можете использовать скорость компиляции (как упоминалось в других ответах).
Посмотрите rango, который использует цикл сгенерированного слияния, чтобы имитировать REPL. Вы также можете запустить его с помощью импорта и операторов для начала интерактивного сеанса.
Ответ 8
Гош - это интерактивная оболочка Голанга. Цель состоит в том, чтобы обеспечить удобную интерактивную среду выполнения.