我想扫描未知数量的线,直到扫描所有线.我怎么用红宝石做到这一点?
例如:
put returns between paragraphs
for linebreak add 2 spaces at end
_italic_ or **bold**
Run Code Online (Sandbox Code Playgroud)
输入不是来自'文件',而是来自STDIN.
fal*_*tru 10
使用IO#read
(不带length
参数,直到EOF才读取)
lines = STDIN.read
Run Code Online (Sandbox Code Playgroud)
或者gets
与nil
参数一起使用:
lines = gets(nil)
Run Code Online (Sandbox Code Playgroud)
要表示EOF,请键入Ctrl+ D(Unix)或Ctrl+ Z(Windows).
在ruby中有很多方法可以做到这一点.大多数情况下,你一次想要处理一行,你可以做,例如,你可以做
while line=gets
end
Run Code Online (Sandbox Code Playgroud)
要么
STDIN.each_line do |line|
end
Run Code Online (Sandbox Code Playgroud)
或者通过使用-n
开关运行ruby ,例如,这意味着上述循环中的一个($_
在每次迭代中都会保存行,并且您可以添加BEGIN{}
,END{}
就像在awk
- 这对于单行来说非常有用).
STDIN.read
但是,我不会这样做,因为它会立即将整个文件读入内存(如果文件非常大,可能会很糟糕.)
归档时间: |
|
查看次数: |
7100 次 |
最近记录: |