def say(arg)
"Hello, #{arg}.\n"
end
say("ABC") # => "Hello, ABC.\n"
なぜここに改行の代わりに\nが出力されるのですか?
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
または同様のもの。