ruby中__FILE__,$FILENAME,$PROGRAM_NAME,$0等类似变量的含义
ruby中有4个类似的变量(常量),他们分别是:
__FILE__,$FILENAME,$PROGRAM_NAME,$0
他们分别在代码中表示神马呢?我们用实际的例子说明一下:
x.rb
#!/usr/bin/ruby load 'xx.rb' puts __FILE__ puts $FILENAME puts $PROGRAM_NAME puts $0
xx.rb
#!/usr/bin/ruby puts "*"*24 puts "in xx.rb".center(24,"*") puts __FILE__ puts $FILENAME puts $PROGRAM_NAME puts $0 puts "*"*24
运行结果如下:
./x.rb mt.rb ************************ ********in xx.rb******** xx.rb mt.rb ./x.rb ./x.rb ************************ ./x.rb mt.rb ./x.rb ./x.rb
可以看出来$0和$PROGRAM_NAME永远为当前运行程序的文件名,无论其是否在load或是require中被调用,而__FILE__值在x.rb中和$0相同,但是在load中其值为被load的文件名;在require中也是被require的文件名,不过是绝对路径哦!至于$FILENAME其值为程序的文件名参数,如果文件名参数大于1个,则为第一个参数,如果该参数不是有效的文件名,则会抛出异常啊.
最后更新:2017-04-03 05:39:35