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

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

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

4

3 回答 3

2

因为say返回一个字符串。它不打印任何东西。

如果你想打印一些东西,你应该尝试:

def say(arg)
  puts "Hello, #{arg}.\n"
end
于 2013-03-24T05:26:35.843 回答
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
于 2013-03-24T05:26:42.950 回答
0

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

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

于 2013-03-24T05:28:51.737 回答