428
技術社區[雲棲]
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