面试题答案
一键面试在Ruby中,可以使用define_method
方法在运行时为一个类动态定义一个实例方法。示例代码如下:
class MyClass
def self.define_dynamic_method
define_method(:dynamic_method) do
puts "This is a dynamically defined instance method."
end
end
end
MyClass.define_dynamic_method
obj = MyClass.new
obj.dynamic_method
在上述代码中:
- 首先定义了一个类
MyClass
。 - 在
MyClass
类中定义了一个类方法define_dynamic_method
,在这个类方法中使用define_method
来动态定义一个实例方法dynamic_method
。 - 调用
MyClass.define_dynamic_method
,这样就为MyClass
类动态添加了dynamic_method
实例方法。 - 创建
MyClass
类的实例obj
,并调用dynamic_method
方法。
define_method
方法有两个主要参数:
- 方法名:第一个参数是要定义的实例方法的名称,如上述代码中的
:dynamic_method
,它指定了新创建的实例方法的名字。 - 方法体:第二个参数是一个代码块,这个代码块就是新定义方法的具体实现。如上述代码中
do... end
之间的代码puts "This is a dynamically defined instance method."
,当调用dynamic_method
时,就会执行这个代码块。