对红宝石来说相当新,有人可以解释为什么这两件事的反应不同吗?
a=["A","B","C"]
puts a
A
B
C
puts "#{a}"
ABC
a.to_s返回与模板输出相同的输出,但是简单的“put a”不应该这样做吗?
答案 0 :(得分:4)
puts的指定行为是它之后用换行符写出东西。如果它是一个数组,它会用换行符写每个元素。
当你输入a.to_s时,它首先执行to_s(产生一个字符串),然后输出带有换行符的单个字符串。
答案 1 :(得分:3)
正如在this thread中所讨论的那样,并且没有充分的理由,当给予puts
时,数组具有神奇不一致的行为。
array.each {|e| puts e }
与:
相同
puts array