有没有办法在严格的Hack模式下创建命令行程序?由于Hack的严格模式不允许函数外的语句,我无法调用main
函数。
(这是一个理论问题,因为通过使用非严格的文件来调用main函数很容易避免这个问题。)
答案 0 :(得分:5)
由于此限制,目前无法在Hack严格模式下100%编写项目(命令行程序或其他)。你确实需要在toplevel(" pseudomain")中有一些bootstrap代码,而strict当前不允许这样做。这样做的原因是顶层代码基本上不可能进行静态类型检查,因为所有内容都是全局的,并且可以随时通过任何代码在幕后更改。
然而,最终的结果是愚蠢的,我们最终想要修复的东西 - 例如,没有理由阻止对没有参数的函数的单次调用,即,你需要立即从伪域中获取的东西进入一个功能。