使用字符串作为函数名称
我必须创建一个generics函数,用于调用许多其他函数,具体取决于我获得的访问。 对于Ex:
def func1 @access = ['public','private','protected'] for acc in @access @temp = "get_"+acc[1]+"_data" end end def get_public_data end def get_private_data end def get_protected_data end
但是@temp将它作为字符串并将其分配给它。 请尽快帮助。
谢谢
在Ruby中,方法实际上就是消息。 所以你可以使用, send
方法发送消息名称:
s = 'xyz' i = s.send 'length' # i = 3
@temp = send "get_#{acc[1]}_data"
使用#{acc[1]}
代替“+”
不知道你正在使用什么语言,但有些语言,例如Perl有一个eval()函数可以完成你正在尝试的。
如果您使用Perl或Python,您可能会尝试类似的东西
@temp = eval(“get _”+ acc 1 +“_ data”)