gpt4 book ai didi

ocaml - OCaml 中的脚本主程序?

转载 作者:行者123 更新时间:2023-12-04 18:46:19 28 4
gpt4 key购买 nike

如何在 OCaml 中模拟这个 Python 习语?

if __name__=="__main__":
main()

RosettaCode其他编程语言中的示例。

最佳答案

Ocaml 中没有主模块的概念。一个程序中的所有模块都是平等的。所以不能直接翻译这个 Python 成语。

Ocaml 中的常用方法是创建一个单独的文件,其中包含对 main 的调用。 ,以及仅在独立可执行文件中才有意义的其他内容,例如命令行解析。将代码链接为库时不要包含该源文件。

有一种方法可以获取模块的名称,但它相当 hackish,因为它仅用于调试。它违反了通常的假设,即您可以重命名模块而不改变其行为。如果你依赖它,其他阅读你代码的程序员会诅咒你。此方法仅供娱乐,不应在现实生活中使用。

let name_of_this_compilation_unit = 
try assert false with Assert_failure (filename, _, _) -> filename

您可以将编译单元的名称与 Sys.executable_name 进行比较或 Sys.argv.(0) .请注意,这与 Python 习语并不完全一样,后者不依赖于具有特定名称的顶级脚本。

关于ocaml - OCaml 中的脚本主程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7604201/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com