私はそれを作ることができるかどうか疑問に思っていたので、私が次のようなものを持っていれば
class Test
attr_reader :access_times
def initialize
@access_times = 0
end
def get_two
2
end
...
end
t = Test.new
にアクセスするt
と、実際にメソッドを実行する前に特定のコードが実行されますか?
たとえば、突然、と言うことにした場合、構文t.get_two
を使用したという事実は1ずつインクリメントされます。または、チェックを行った場合も1ずつインクリメントされます。によって継承されたメソッドまたは属性にアクセスすると、変数も1インクリメントされます。 。.
@access_times
t.is_a?(Test)
@access_times
Test
.
基本的に、可能であれば構文にいくつかのものを追加したいと思います。
私はこれが良いコードなのか悪いコードなのかを尋ねているのではなく、それが可能かどうか、そしてそれがどのように行われるのかを尋ねています。すべてのメソッドにインクリメントロジックを手動で追加し、すべての直接インスタンス変数アクセスをメソッドに置き換えることができるため、通常は使用しません(などis_a?
から継承されたものもObject
)