Ruby が二重引用符 ( ""
)と で新しい文字列を初期化する方法の違いは何String.new
ですか? 好奇心と実験の目的で、私はオーバーライドしましたString#initialize
:
class String
def initialize
puts "I <3 bananas" # they're delicious!
end
end
私が理解しようとしているのは、これら 2 つの例が異なるのはなぜですか?
# Calling the String class directly, I can declare banana love!
irb(main):054:0> String.new
I <3 bananas
=> ""
# Using double quotes, this string is not as tasty :(
irb(main):055:0> ""
=> ""
Google の検索結果はすべて基本的な Ruby 構文に焦点を当てているように見え、Ruby のドキュメントには何も見つからないため、これを調査するのは面倒です。