__FILE__ == $PROGRAM_NAME在ruby中意味着什么?
发布时间:2020-12-17 01:36:24 所属栏目:百科 来源:网络整理
导读:参见英文答案 What does `if __FILE__ == $0` mean in Ruby????????????????????????????????????6个 在查看Ruby中的代码时,我偶然发现了这个sintax.代码是: if __FILE__ == $PROGRAM_NAME #some code...end 我想__FILE__是一个变量,它让我知道我所在文件的
参见英文答案 >
What does `if __FILE__ == $0` mean in Ruby????????????????????????????????????6个
在查看Ruby中的代码时,我偶然发现了这个sintax.代码是: if __FILE__ == $PROGRAM_NAME #some code... end 我想__FILE__是一个变量,它让我知道我所在文件的名称? 解决方法
__FILE__始终返回源文件的路径.它不是变量,因此您无法为其赋值.它是返回相对路径还是绝对路径取决于您运行脚本的方式.
$PROGRAM_NAME或$0默认返回引导程序的命令(减去ruby解释器的路径).例如,你有一个脚本文件test.rb,如下所示: #!/usr/bin/env ruby puts __FILE__ puts $PROGRAM_NAME 如果您使用ruby test.rb运行此脚本,则会打印出来 test.rb test.rb 如果使用ruby /path/to/test.rb运行脚本,则会打印 /path/to/test.rb /path/to/test.rb 如果您为脚本提供执行权限并使用./test.rb运行它,则会打印出来 ./test.rb ./test.rb 与__FILE__不同,$PROGRAM_NAME和$0是真正的全局变量,您可以更改它们的值. $PROGRAM_NAME和$0是彼此的别名,因此您更改任何一个的值,另一个的值将相应更改.例如,你有一个像这样的test2.rb: #!/usr/bin/env ruby $0 = 'Hello,world!' puts $0 puts $PROGRAM_NAME 它打印 Hello,world! Hello,world! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Oracle 自定义wmsys.wm_concat 避免长度限制
- 【ActionScript】ActionScript3.0的Helloworld
- ruby-on-rails – Rails的protect_from_forgery真的有用吗?
- ruby – 使用s3 gem rails 4.1.5时,不允许使用`@@ {‘作为类
- c – cmake:我必须以哪种顺序指定TARGET_LINK_LIBRARIES
- 正则表达式库基准
- 循环 – 在swift中循环遍历字典
- [Flex]Flex编程注意之Namespace的用法
- NoSQL之Redis常用命令--键值相关命令
- c# – SQLCommand.ExecuteReader()不限制只读语句