有没有办法在严格的黑客模式下创建命令行程序?由于Hack的严格模式不允许函数外的语句,所以我不能调用我的main
函数。
(这是一个相当理论化的问题,因为通过使用非严格的文件来调用主函数很容易绕过这个问题。)
由于这个限制,目前不可能100%在Hack严格模式下编写项目(命令行程序或其他程序)。您确实需要在顶层("pseudomain")中有一些引导程序代码,而strict目前不允许这样做。原因是顶层代码基本上不可能静态地进行类型检查,因为一切都是全局的,任何代码都可以在幕后随时更改。
然而,最终的结果是愚蠢的,也是我们最终想要解决的问题——例如,没有理由阻止对一个没有参数的函数的一次调用,也就是说,你需要立即从pseudomain进入一个函数。