rubyで以下のコードを書いたとします
ruby
1class Human 2 include Comparable 3 attr_accessor :name 4 5 def initialize(name) 6 @name = name 7 end 8 9 def <=>(other) #1 10 puts name <=> other.name 11 end 12end 13 14itou = Human.new('itou') 15sasaki = Human.new('sasaki') 16 17itou <=> sasaki #2
そこで、例えば#1の「def <=>(other)」を、「def compare(other)」に変更したとします。
すると#2の「itou <=> sasaki」は「itou compare sasaki」となるわけですが、こう書くとエラーが出ます。(正しく書くと「itou.compare(sasaki)」ですよね)
このように、もし関数名が記号(+, -. /)だったら、その関数を省略した書き方で呼び出せますが、文字列だとそうはいきません。これは、rubyがそのような言語仕様になっているからですか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。