class A
def p
puts "1"
end
end
a = A.new
a.p #=> "1"
class A
def p
puts "2"
end
end
a.p #=>"2"
この Ruby のプロパティは「Open Class」と呼ばれますか?このプロパティを持つ言語は他にありますか?
class A
def p
puts "1"
end
end
a = A.new
a.p #=> "1"
class A
def p
puts "2"
end
end
a.p #=>"2"
この Ruby のプロパティは「Open Class」と呼ばれますか?このプロパティを持つ言語は他にありますか?
そう、これをRubyではオープンクラスと呼んでいます。私の頭の中で、この特性を持つ他の言語には Python と Smalltalk が含まれます。また、クラスがなくても、ECMAScript、Self、Io、および Ioke でプロトタイプ オブジェクトを変更すると、同様の効果があります。
Smalltalk でこれを行う方法はいくつかありますが、私は、なぜそれをやりたいと思うのかを尋ね、別の解決策を求める傾向があります。実行時にコードを変更することは、デバッグが困難なコードを作成するためのレシピです。