アプリ版:「スタンプのみでお礼する」機能のリリースについて

class Integer
def to_square
return self * self
end
end

print 4.to_square

以上はIntegerクラスを拡張したものなのですが、このときの
return self * self
のselfは何を示しているのか教えてください。
to_squareだと思ったのですが、違うのでしょうか...

A 回答 (2件)

そのメソッドを起動したオブジェクト.

    • good
    • 0

class Integerの定義の中に書かれているのですから、


selfは、Integer型のオブジェクトそのもの となります。
具体的には、1 とか 4 とか 10 とかの整数値ですね。

print 4.to_square
は、to_squareメソッドがself*self( = 4*4 → 16)を返すので、16 と表示されることになります。

整数値が本当にInteger型のオブジェクトであるか確認するには
print 4.class
の様にしてみれば良いです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!