Есть ли способ доступа к интерактивной консоли REPL в контексте приложения, в Go?
Для справки, я думаю о функциональности irb * Руби или pry (и, как следствие, консоль Ruby On Rails , которая на них основана), Node.js REPL , Scala REPL (и игровая консоль ) или Elixir's IEx .Все это инструменты разработки (или производства!) Для открытия REPL в контексте приложения.Например, они позволяют получить доступ к классам, объектам и константам приложения, а также, по расширению, взаимодействовать с ресурсами приложения (например, с базой данных).
Есть некоторые Go REPLs, такие как gore , но не ясно, как подключить их к приложению.
Полагаю, можно было бы запустить сеанс gore
и затем импортировать все пакеты, но как насчет инициализации, которая происходит в main
?
Мой инстинкт подсказывает мне, что должен быть способ предоставить альтернативный «только для REPL» main
для компиляции другого двоичного файла, который запускает приложение как REPL, а не, скажем,HTTP-сервер.
Есть ли какой-либо установленный способ сделать это?Или эталонная реализация?