如何在Ruby中使用stdin和stdout



所以我有一个下面的方法,它可以在不使用stdin或stdout的情况下工作。

def main(lines)
lines.each_index do |i|
word = lines[i]
if word.length > 1 && word.length <=11 
puts "I use #{word}"
end
end
end
main(["Google", "yahoo", "stackoverflow", "reddit"])

但我正在努力理解stdin和stdout是如何与上述内容协同工作的。

所以当stdin是"Google"时,stdout是"我使用Google">

我不得不用上面的数组替换main(readlines),只是为了让它工作。

main(readlines) ===> main(["Google", "yahoo", "stackoverflow", "reddit"])

我不知道如何实现这样的命令行。

对于stdout,它会出现在puts之前吗?

stdout.puts "I use #{word}"

使用以下方法之一:

$stdout.puts "I use #{word}"

STDOUT.puts "I use #{word}"

有关更多信息,请参阅"Ruby中$stdout和stdout之间的区别"。

你可以让你的脚本更简单:

def main(lines)
lines.each_with_index do |i,v| # or use each instead if u just want only the value and change |i,word| to |word|
if word.length > 1 && word.length <=11 
puts "I use #{word}"
end
end
end

相关内容

  • 没有找到相关文章

最新更新