问题标签 [scriptedmain]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
174 浏览

main - 如果 __name__=="__main__": main(),Factor 是否与 Python 习语等效?

与任何基于 C 的语言一样,Factor 似乎有一个主要方法:

但是Factor不会自动执行main函数;如果您./hello.factor在终端中运行,则不会发生任何事情,因为main没有被调用。

有谁知道 Factor 是否有像 Python 这样的语法,所以hello实际上是调用的./hello.py

0 投票
2 回答
501 浏览

ocaml - OCaml 中的脚本主程序?

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

有关其他编程语言的示例,请参阅RosettaCode

0 投票
2 回答
243 浏览

pascal - 帕斯卡单位可以编译为可执行文件吗?

我喜欢我的库兼作可执行文件。期望的行为是:

我怎样才能:

  • 编译scriptedmain.pscriptedmain二进制文件?
  • 阻止test.p运行/部分中scriptedmain.p的代码?beginend

脚本main.p:

当我用 编译 scriptedmain.p 时fpc scriptedmain.p,没有创建可执行文件,因为 Pascal 检测到它是一个单元。但我希望它是除了库之外的可执行文件。

测试.p:

当我用 编译 test.p 时fpc test.p,生成的可执行文件结合了两个begin/end声明(不是所需的行为)。

0 投票
3 回答
135 浏览

attributes - 有没有办法在 D 编程语言中覆盖模块的主要功能?

如果你真的需要,你可以__attribute__((weak))在 C 中指定(参见scriptedmain)。这允许程序兼作 API 和可执行文件,允许导入 API 的代码覆盖主函数。

D有办法做到这一点吗?Python 有if __name__=="__main__": main(),但weakC 中的语法似乎更接近。

0 投票
2 回答
914 浏览

gcc - 在 MinGW 中使用 scriptedmain 时遇到问题

我想用 C 语言重现这个 Perl 代码,将 API 和 CLI 捆绑在同一个 C 源代码文件(scriptedmain)中。这是在 Pythonif __name__=="__main__": main()和 gcc/Unix 中完成的,如下所示:

脚本main.h

脚本main.c

测试.c

但是,当我尝试使用 gcc/Strawberry 进行编译时,我得到:

当我尝试使用 gcc/MinGW 编译时,我得到:

如何让 GCC 在 Windows 中识别__attribute__((weak))语法?

此外,G++ 显示相同的错误。

0 投票
1 回答
120 浏览

r - R中的脚本主要行为?

工作knitr 引入了一个新问题——我的许多R脚本都包含图片生成代码,而当我获取代码时,绘图代码会减慢速度。

我的想法是将绘图代码移动到一个组中,该组仅在代码在上层执行时运行,并且在代码由另一个 R 脚本提供时不运行,通过source()习语。这可能吗?

我发现了这个旧的 SO 问题,但是在我的情况下interactive()总是TRUE如此,所以接受的答案不起作用。

我的情况如下:我有一个文件 ,并通过将其从 发送到myKnit.rnw运行它,使用. 因此,总是将是,并且将是非零的——因为它基本上是通过应用到临时文件来工作的。 vimRvim-r-plugininteractive()TRUElength(sys.frames())vim-r-pluginbase::source(...)

我正在寻找的解决方案R相当于pythonidiom if __name__ == __main__

因此,当通过myKnit.rnw运行和获取源myscript.rsource("~/R/myscript.r")if计算FALSE结果和绘图代码myscript.r不会运行。

在 python 术语中,__name__(或我们称之为的任何东西)在 sources 时不会是__main__myKnit.rnw但当myscript.rmyscript.rvim.

示例knitr代码:

这是来源的情节脚本:

带有系统特定标志的解决方案,反映了 Yihui 的评论