如何获取我的Crystal脚本的编译版本以获得自己的__FILE__.这是一个例子.我有一个名为〜/ test.cr的文件,其中包含以下内容:
puts __FILE__
Run Code Online (Sandbox Code Playgroud)
我通过Crystal编译脚本
~$ crystal ~/test.cr -o ~/test.compiled
Run Code Online (Sandbox Code Playgroud)
接下来我运行〜/ test.compiled.我产生了结果
/Users/Account1/test.cr
Run Code Online (Sandbox Code Playgroud)
即使__FILE__实际上是
/Users/Account1/test.compiled
Run Code Online (Sandbox Code Playgroud)
有没有办法使它生产
/Users/Account1/test.compiled
Run Code Online (Sandbox Code Playgroud)
代替
/Users/Account1/test.cr
Run Code Online (Sandbox Code Playgroud)
元常量__FILE__始终指向源文件,而不是可执行文件.但是,您可以使用$0获取当前可执行文件路径(或使用完整路径File.expand_path):
foo.cr:
puts $0
puts File.expand_path($0)
Run Code Online (Sandbox Code Playgroud)
然后编译并执行:
$~ crystal build foo.cr
$~ ./foo
./foo
/Users/MyUser/foo
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |