閱讀428 返回首頁    go 技術社區[雲棲]


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

  上一篇:go 九度題目1011:最大連續子序列
  下一篇:go Calculate Number Frequency