我正在处理我的webapplication并使用revel框架。为了执行一个revel应用程序,我运行 以下代码
revel run myapp
现在,我真的很奇怪陶醉是如何运作的。我的问题是,revel框架如何使用我为应用程序编写的许多go文件执行myapp?陶醉 虚拟机?
如何在Go中编写应用程序并读取Go文件并执行它?
答案 0 :(得分:3)
不,狂欢不是虚拟机。 Revel在您修改源代码时重新编译它。
中的功能对此进行了描述Hot Code Reload 编辑,保存和刷新。 Revel为您编译代码和模板,因此您不会错过任何一个节拍。代码不编译?它为您提供了有用的描述。运行时代码恐慌? Revel让你满意。
Go源编译速度非常快,因此可以
答案 1 :(得分:2)
Revel是一个预处理器而不是框架。它抽象了Go的工作,并介绍了它自己的code structure and concepts。这在Go社区中通常是不受欢迎的,但这不是你问题的主题,所以我也不会这样做。
它的工作方式是将代码与自己的样板结合起来并将所有内容编译在一起。
如何在Go中编写应用程序并读取Go文件并执行它?
要么你写一个REPL,要么你喜欢Revel,只需创建一个应用程序,它将通过使用Go编译器套件编译其他Go应用程序。
编辑以回答评论中的问题:Revel itself是一个很好的例子。在line 73上,它使用一些标志执行go build
并将输出设置为binName
,这是临时文件的路径。
答案 2 :(得分:0)
Revel不是虚拟机。事实上,它是Go的框架。
正如Revel的主页所说:
Hot Code Reload
Edit, save, and refresh. Revel compiles your code and templates for you, so you don't miss a beat. Code doesn't compile? It gives you a helpful description. Run-time code panic? Revel has you covered.