- Ruby 基礎
- Ruby - 首頁
- Ruby - 概述
- Ruby - 環境設定
- Ruby - 語法
- Ruby - 類和物件
- Ruby - 變數
- Ruby - 運算子
- Ruby - 註釋
- Ruby - IF...ELSE
- Ruby - 迴圈
- Ruby - 方法
- Ruby - 塊
- Ruby - 模組
- Ruby - 字串
- Ruby - 陣列
- Ruby - 雜湊表
- Ruby - 日期和時間
- Ruby - 範圍
- Ruby - 迭代器
- Ruby - 檔案 I/O
- Ruby - 異常
Ruby 預定義變數
Ruby 的預定義變數會影響整個程式的行為,因此不建議在庫中使用它們。
大多數預定義變數的值可以透過其他方法訪問。
下表列出了所有 Ruby 的預定義變數。
| 序號 | 變數名及描述 |
|---|---|
| 1 | $! 最後引發的異常物件。異常物件也可以在rescue語句中使用=>訪問。 |
| 2 | $@ 最後引發的異常的堆疊回溯。可以透過最後異常的Exception#backtrace方法檢索堆疊回溯資訊。 |
| 3 | $/ 輸入記錄分隔符(預設為換行符)。gets, readline, 等將它們的可選項作為輸入記錄分隔符。 |
| 4 | $\ 輸出記錄分隔符(預設為 nil)。 |
| 5 | $, print 和 Array#join 的引數之間的輸出分隔符(預設為 nil)。您可以為 Array#join 顯式指定分隔符。 |
| 6 | $; split 的預設分隔符(預設為 nil)。您可以為 String#split 顯式指定分隔符。 |
| 7 | $. 從當前輸入檔案中讀取的最後一行號。等同於 ARGF.lineno。 |
| 8 | $< ARGF 的同義詞。 |
| 9 | $> $defout 的同義詞。 |
| 10 | $0 當前正在執行的 Ruby 程式的名稱。 |
| 11 | $$ 當前正在執行的 Ruby 程式的程序 ID。 |
| 12 | $? 最後終止的程序的退出狀態。 |
| 13 | $: $LOAD_PATH 的同義詞。 |
| 14 | $DEBUG 如果指定了 -d 或 --debug 命令列選項,則為真。 |
| 15 | $defout print 和 printf 的目標輸出(預設為 $stdout)。 |
| 16 | $F 當指定 -a 時接收來自 split 的輸出的變數。如果指定了 -a 命令列選項以及 -p 或 -n 選項,則會設定此變數。 |
| 17 | $FILENAME 當前正在從 ARGF 讀取的檔名。等同於 ARGF.filename。 |
| 18 | $LOAD_PATH 一個包含在使用 load 和 require 方法載入檔案時要搜尋的目錄的陣列。 |
| 19 | $SAFE 安全級別 0 → 對外部提供的(被汙染的)資料不執行任何檢查。(預設) 1 → 禁止使用被汙染的資料進行潛在危險的操作。 2 → 禁止對程序和檔案的潛在危險操作。 3 → 所有新建立的物件都被認為是被汙染的。 4 → 禁止修改全域性資料。 |
| 20 | $stdin 標準輸入(預設為 STDIN)。 |
| 21 | $stdout 標準輸出(預設為 STDOUT)。 |
| 22 | $stderr 標準錯誤(預設為 STDERR)。 |
| 23 | $VERBOSE 如果指定了 -v、-w 或 --verbose 命令列選項,則為真。 |
| 24 | $-x 直譯器選項 -x 的值 (x=0, a, d, F, i, K, l, p, v)。這些選項列在下面 |
| 25 | $-0 直譯器選項 -x 的值以及 $/ 的別名。 |
| 26 | $-a 直譯器選項 -x 的值,如果設定了 -a 選項則為真。只讀。 |
| 27 | $-d $DEBUG 的直譯器選項 -x 的值和別名 |
| 28 | $-F $; 的直譯器選項 -x 的值和別名。 |
| 29 | $-i 直譯器選項 -x 的值,在就地編輯模式下,儲存副檔名,否則為 nil。可以啟用或停用就地編輯模式。 |
| 30 | $-I :的直譯器選項 -x 的值和別名。 |
| 31 | $-l 直譯器選項 -x 的值,如果設定了 -l 選項則為真。只讀。 |
| 32 | $-p 直譯器選項 -x 的值,如果設定了 -p 選項則為真。只讀。 |
| 33 | $_ 區域性變數,當前作用域中 gets 或 readline 讀取的最後一個字串。 |
| 34 | $~ 區域性變數,與最後匹配相關的 MatchData。Regex#match 方法返回最後匹配的資訊。 |
| 35 | $n ($1, $2, $3...) 在最後模式匹配的第 n 個組中匹配的字串。等同於 m[n],其中 m 是一個 MatchData 物件。 |
| 36 | $& 在最後模式匹配中匹配的字串。等同於 m[0],其中 m 是一個 MatchData 物件。 |
| 37 | $` 在最後模式匹配中匹配之前的字串。等同於 m.pre_match,其中 m 是一個 MatchData 物件。 |
| 38 | $' 在最後模式匹配中匹配之後的字串。等同於 m.post_match,其中 m 是一個 MatchData 物件。 |
| 39 | $+ 對應於最後模式匹配中最後成功匹配的組的字串。 |