Python's if __name__== "__main__" GNU Smalltalk的成语?



这样的事情真的存在吗?

Ruby:

if __FILE__ == $0
    main
end
Perl:

unless(caller) {
    main;
}

Lua:

if type(package.loaded[(...)]) ~= "userdata" then
    main(arg)
else
    module(..., package.seeall)
end

异国情调的多行shebangs和argv技巧完成了这项工作。

参见罗塞塔代码。

scriptedmain.st:

"exec" "gst" "-f" "$0" "$0" "$@"
"exit"
Object subclass: ScriptedMain [
    ScriptedMain class >> meaningOfLife [ ^42 ]
]
| main |
main := [
    Transcript show: 'Main: The meaning of life is ', ((ScriptedMain meaningOfLife) printString); cr.
].
(((Smalltalk getArgc) > 0) and: [ ((Smalltalk getArgv: 1) endsWith: 'scriptedmain.st') ]) ifTrue: [
    main value.
].

相关内容

  • 没有找到相关文章

最新更新