我试图了解使用puts
时的输出。我知道puts
确实返回零,但是,我在与Hashes合作时遇到了一些问题。了解puts输出
我想要下面的块使用字符串插值以某种格式输出每个键/值对,但是,即使puts
按预期工作,我注意到我的终端也打印了整个哈希,如下所示。我想知道如何防止这种情况。
@hash.each do |key,val|
puts "[#{key}] '#{val}'"
end
[fish] 'aquatic animal'
[zebra] 'African land animal with stripes'
[apple] 'fruit'
=> {"fish"=>"aquatic animal", "zebra"=>"African land animal with stripes", "apple"=>"fruit"}
实际上,“终端”不打印任何东西,它是正在运行的代码打印它。终端只显示它。如果使用'ruby some_script.rb'运行你的代码,你将不会看到'each'的返回值,因为没有'puts';你需要'puts @ hash.each ...'。因为你看到的是输出,所以你使用的是IRB或Pry,而不是直接使用Ruby,这会让你对真正发生的事情感到困惑。 IRB/Pry是非常有用的工具,但您必须牢记与Ruby解释器的不同之处。 –