元編程是一種在程序運行時修改、擴展或創建代碼的技術。在Ruby中,元編程可以通過一些內置方法和技術來實現。以下是一些常見的元編程技術:
define_method
方法動態地定義一個方法。class MyClass
define_method :my_method do
puts "Hello, world!"
end
end
obj = MyClass.new
obj.my_method
send
或public_send
方法來動態調用方法。class MyClass
def my_method
puts "Hello, world!"
end
end
obj = MyClass.new
obj.send(:my_method)
class String
def shout
self.upcase + "!!!"
end
end
puts "hello".shout
ActiveSupport
庫中的Module#class_attribute
方法可以動態地為類添加類屬性。require 'active_support'
class MyClass
class_attribute :my_attribute
end
MyClass.my_attribute = "Hello, world!"
puts MyClass.my_attribute
總的來說,元編程是一種強大的技術,可以用來動態地修改、擴展或創建代碼,但同時也需要謹慎使用,以避免引入不必要的復雜性和難以理解的代碼。