def say(arg)
"Hello, #{arg}.\n"
end
say("ABC") # => "Hello, ABC.\n"
为什么在这里打印\ n而不是换行?
答案 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
或类似的。