Ruby 动态方法调用与系统特性全解析
1. 动态方法调用
在编程中,有时我们需要根据不同的条件动态地调用对象的方法。在 Ruby 里,有多种方式可以实现这一需求。
1.1 过滤模块常量
Module.constants 会返回模块可用的所有常量,包括其超类的常量。若我们只关注当前模块的常量,可将超类的常量从列表中减去。
1.2 动态调用方法的方式
-
send方法 :在 C 和 Java 中,若要根据命令调用函数,通常需要编写调度表。而在 Ruby 里,只需将命令函数放入一个类,创建该类的实例,然后使用send方法调用与命令字符串同名的方法即可。例如:
class Commands
def play
puts "Playing..."
end
def stop
puts "Stopping..."
end
end
commands = Commands.new
command_string = "play"
commands.send(command_string) # 输出: Playing...
send 方法不仅适用于自定义的命令类,还能用于任何对象。例如:
"John Coltrane".send(:lengt
超级会员免费看
订阅专栏 解锁全文

77

被折叠的 条评论
为什么被折叠?



