为什么newline char在这里不起作用?

时间:2013-03-24 05:23:41

标签: ruby

def say(arg)
  "Hello, #{arg}.\n"
end

say("ABC")  # => "Hello, ABC.\n"

为什么在这里打印\ n而不是换行?

3 个答案:

答案 0 :(得分:2)

因为say返回一个String。它不会打印任何东西。

如果你想打印,你应该尝试:

def say(arg)
  puts "Hello, #{arg}.\n"
end

答案 1 :(得分:0)

您最有可能在irb中尝试此操作,它会显示字符串的Ruby表示形式。比较:

irb(main):007:0> puts say("ABC") + say("ABC")
Hello, ABC.
Hello, ABC.
=> nil
irb(main):008:0> puts "ABC" + "ABC"
ABCABC
=> nil

答案 2 :(得分:0)

它实际上从未打印到stdio或类似的东西,你只是从一个函数返回一个字符串。

我会假设您在IRB中对此进行评估,IRB会打印出每个表达式的结果。 使用puts或类似的。