當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Ruby ARGF類用法及代碼示例

本文簡要介紹ruby語言中 ARGF類 的用法。

ARGF 是一個流,設計用於處理作為命令行參數給出或通過 STDIN 傳入的文件的腳本。

傳遞給腳本的參數存儲在 ARGV Array 中,每個元素一個參數。 ARGF 假定所有不是文件名的參數都已從 ARGV 中刪除。例如:

$ ruby argf.rb --verbose file1 file2

ARGV  #=> ["--verbose", "file1", "file2"]
option = ARGV.shift #=> "--verbose"
ARGV  #=> ["file1", "file2"]

您現在可以使用ARGF 來處理每個命名文件的串聯。例如,ARGF.read 將返回 file1 的內容,後跟 file2 的內容。

讀取 ARGV 中的文件後,ARGF 將其從 Array 中刪除。因此,在讀取所有文件後,ARGV 將為空。

您可以自己操作ARGV 來控製ARGF 操作的內容。如果您從 ARGV 中刪除一個文件,它會被 ARGF 忽略;如果您將文件添加到 ARGV ,它們將被視為在命令行上命名。例如:

ARGV.replace ["file1"]
ARGF.readlines # Returns the contents of file1 as an Array
ARGV           #=> []
ARGV.replace ["file2", "file3"]
ARGF.read      # Returns the contents of file2 and file3

如果 ARGV 為空,則 ARGF 就像它包含 STDIN 一樣,即通過管道傳輸到腳本的數據。例如:

$ echo "glark" | ruby -e 'p ARGF.read'
"glark\n"

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 ARGF類。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。