Ruby 內建變數與內建常數
指令輸出 ``
可以直接使用 ``
符號,框住要行的指令,取得執行的結果,回傳形式為字串。範例為列出所有 .rb
結尾的檔案。
1 | files = `ls` |
內建變數
內建變數是 Ruby 預設運作方式的變數。這些內建變數雖然都以 $
開始的變數,但也有一些不是全域變數。有些全域變數如 $<
其實是 ARGF
的別名,這時候應盡量使用比較好懂的名稱。
$_
: 最後一次呼叫gets
方法讀入的字串$&
: 最後一次樣式比對成功的字串$~
: 最後一次樣式比對的相關資訊$`
: 最後一次樣式比對成功部份左方的字串$'
: 最後一次樣式比對成功部份右方的字串$+
: 最後一次樣式比對成功時,樣式中最後一個()
所比對到的部份$1
: 最後一次樣式比對成功時,樣式中每對()
所比對到的部份,第 n 組()
對應到$n
$?
: 最後一個結束掉的 Child Thread 狀態$!
: 最後一個發生之例外的相關資訊$@
: 最後一個發生之例外的發生位置等資訊$SAFE
: 安全膚級,預設是 0$/
: 輸入紀錄分隔符號,預設是\n
$\
: 輸出記錄分隔符號,預設是nil
$,
: Array#join 的預設分隔字串,預設是nil
$;
: Array#join 的預設分隔字串,預設是nil
$.
: 輸入檔中最後讀入資料的行號$<
:ARGF
的別名$>
:print
puts
p
等方法預設的輸出對象,預設是STDOUT
$0
: 現在所執行的 Ruby 指令稿名稱$*
:ARGV
的別名$$
: 現在所執行的 Ruby 的 Thread ID$:
: require 讀取檔案時要尋找之目錄的陣列$"
: require 讀取檔案時要尋找之檔案的陣列$DEBUG
: 偵錯模式所指定的 flag,預設是nil
$FILENAME
:ARGF
現在所讀取的檔名$LOAD_PATH
:$:
的別名$stdin
: 標準輸入,預設是STDIN
$stdout
: 標準輸出,預設是STDOUT
$stderr
: 標準錯誤輸出,預設是STDERR
$VERBOSE
: 設定為警告模式的 flag,預設是nil
$: $LOAD_PATH
$:
與 $LOAD_PATH
相同,用來表示程式庫的路徑。也就是指定 Ruby 在尋找程式庫時,要從哪裡、以什麼順序搜尋?
$! $@
用在例外處理,$@
紀錄例外發生的位置,而 $!
紀錄例外相關的資訊。
$1 … $9
從常規表示式中比對成功取出的值。
內建常數
STDIN
: 標準輸入STDOUT
: 標準輸出STDERR
: 標準錯誤輸出DATA
: 用來存取__END__
後方資料的檔案物件ENV
: 環境變數的 HashARGF
: 引數或標準輸入所建立的虛擬檔案物件ARGV
: 命令列引數的陣列RUBY_VERSION
: Ruby 執行環境的版本RUBY_RELEASE_DATE
: Ruby 執行環境的釋出日期字串RUBY_PLATFORM
: 現在運作的環境 OS CPU 字串
Ruby Info
1 | p RUBY_VERSION # "2.3.1" |
DATA
__END__
的用法
1 | data = DATA.read |