所以我有一个下面的方法,它可以在不使用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