作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果确实需要,可以指定__attribute__((weak))
在 C 中(参见 scriptedmain)。这允许程序兼作 API 和可执行文件,允许导入 API 的代码覆盖主函数。
D有办法做到这一点吗? Python 有 if __name__=="__main__": main()
,但 weak
C 中的语法似乎更接近。
最佳答案
是的,使用版本指令,这需要 rdmd 和 dmd 的特殊选项。
脚本main.d:
#!/usr/bin/env rdmd -version=scriptedmain
module scriptedmain;
import std.stdio;
int meaningOfLife() {
return 42;
}
version (scriptedmain) {
void main(string[] args) {
writeln("Main: The meaning of life is ", meaningOfLife());
}
}
#!/usr/bin/env rdmd -version=test
import scriptedmain;
import std.stdio;
version (test) {
void main(string[] args) {
writeln("Test: The meaning of life is ", meaningOfLife());
}
}
$ ./scriptedmain.d
Main: The meaning of life is 42
$ ./test.d
Test: The meaning of life is 42
$ dmd scriptedmain.d -version=scriptedmain
$ ./scriptedmain
Main: The meaning of life is 42
$ dmd test.d scriptedmain.d -version=test
$ ./test
Test: The meaning of life is 42
关于attributes - 有没有办法在 D 编程语言中覆盖模块的主要功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7803636/
我是一名优秀的程序员,十分优秀!