def say(arg)
"Hello, #{arg}.\n"
end
say("ABC") # => "Hello, ABC.\n"
为什么这里打印 \n 而不是换行符?
因为say
返回一个字符串。它不打印任何东西。
如果你想打印一些东西,你应该尝试:
def say(arg)
puts "Hello, #{arg}.\n"
end
您很可能会尝试在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
它实际上从未打印到 stdio 或类似的东西,您只是从函数返回一个字符串。
我会假设您在 IRB 中对此进行评估,IRB 会打印出每个表达式的结果。使用puts
或类似的。