Ruby 內建變數與內建常數
指令輸出 ``
可以直接使用 `` 符號,框住要行的指令,取得執行的結果,回傳形式為字串。範例為列出所有 .rb 結尾的檔案。
1 | files = `ls` |
內建變數
內建變數是 Ruby 預設運作方式的變數。這些內建變數雖然都以 $ 開始的變數,但也有一些不是全域變數。有些全域變數如 $< 其實是 ARGF 的別名,這時候應盡量使用比較好懂的名稱。
$_: 最後一次呼叫gets方法讀入的字串$&: 最後一次樣式比對成功的字串$~: 最後一次樣式比對的相關資訊$`: 最後一次樣式比對成功部份左方的字串$': 最後一次樣式比對成功部份右方的字串$+: 最後一次樣式比對成功時,樣式中最後一個()所比對到的部份$1: 最後一次樣式比對成功時,樣式中每對()所比對到的部份,第 n 組()對應到$n$?: 最後一個結束掉的 Child Thread 狀態$!: 最後一個發生之例外的相關資訊$@: 最後一個發生之例外的發生位置等資訊$SAFE: 安全膚級,預設是 0$/: 輸入紀錄分隔符號,預設是\n$\: 輸出記錄分隔符號,預設是nil$,: Array#join 的預設分隔字串,預設是nil$;: Array#join 的預設分隔字串,預設是nil$.: 輸入檔中最後讀入資料的行號$<:ARGF的別名$>:printputsp等方法預設的輸出對象,預設是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 |