代码之家  ›  专栏  ›  技术社区  ›  Steve B.

Ruby为什么输出这样的值?

  •  0
  • Steve B.  · 技术社区  · 15 年前

    对Ruby来说还很陌生,有人能解释一下为什么这两件事反应不同吗?

    a=["A","B","C"]
    puts a
    A
    B
    C
    
    puts "#{a}"
    ABC
    

    a.to-us返回与模板输出相同的输出,但简单的“puts a”不应该这样做吗?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Jonathan Feinberg    15 年前

    正如在 this thread 而且,如果将数组赋给 puts .

    array.each {|e| puts e }

    相同:

    puts array

        2
  •  4
  •   Jacob Mattison    15 年前

    的指定行为 puts 是它用新行写东西。如果它是一个数组,它会用换行符写入每个元素。

    当你把a.to.u放进去时,它先把to.u放进去(产生一个字符串),然后用换行符输出这个字符串。