本文介绍了如果没有arg,则针对stdin运行脚本;否则输入文件= ARGV [0]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这很好用-只是想知道是否有任何改进可以缩短它?

This works quite nicely - just wondered if there are any improvements to shorten it ?

if (ARGV[0].nil?) then
    input=$<
else
    input=File.new(ARGV[0],"r");
end

...
# Do something with the input here, for example:
input.each_line do |line|
    puts line
end

推荐答案

您可以完全消除前五行.

You can eliminate the first five lines entirely.

来自镐头

因此:

print $<.read

Kernel.gets是$&.; gets的简写,所以:

Kernel.gets is shorthand for $<.gets, so:

while s = gets
  puts s
end

这篇关于如果没有arg,则针对stdin运行脚本;否则输入文件= ARGV [0]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-18 18:13