Ruby'de metaprogramlama harikadır çünkü prototip tabanlı programlamayı taklit etmek ve bazı problemlere uygulanabilirliklerini test etmek için prototip çözümler yazmak için sürekli olarak kullanıyorum.Yakut tekil yöntemler ile (class_eval, define_method) vs (örnek_eval, define_method)
(class << some_object; self; end).class_eval do
define_method(:method_name) do ... method body ... end
end
ve
(class << some_object; self; end).instance_eval do
define_method(:method_name) do ... method body ... end
end
kod iki sürümü bir tekil yöntem tanımlamak ve henüz gelmediler: aşağıdaki kod parçaları arasındaki köklü bir fark olup olmadığını yüzden bilmek istiyorum tek bir yöntem tanımlamak için (class_eval, define_method)
kombinasyonu üzerinde (instance_eval, define_method)
kombinasyonu seçmek için beni zorladı herhangi bir şeye karşı yukarı ve ikisi arasında bazı temel fark olup olmadığını merak ediyorum.
Not Yukarıdaki yapmanın en iyi yolu basitçe olduğunu 'define_singleton_method (: method_name) do ... Sonu '
Bu çeşidin eigenclass bir sınıf yöntemidir –