Ruby:如何使用’send’方法调用方法,使用哈希?
发布时间:2020-12-17 03:51:51 所属栏目:百科 来源:网络整理
导读:假设我有A类,其中有一些方法. 让我们说string methodName是这些方法之一,我已经知道我想要给它的参数.他们在哈希{‘param1’= value1,’param2’=值2} 所以我有: params = {'param1' = value1,'param2' = value2}a = A.new()a.send(methodName,value1,value
假设我有A类,其中有一些方法.
让我们说string methodName是这些方法之一,我已经知道我想要给它的参数.他们在哈希{‘param1’=> value1,’param2’=>值2} 所以我有: params = {'param1' => value1,'param2' => value2} a = A.new() a.send(methodName,value1,value 2) # call method name with both params 我希望能够以某种方式通过传递我的哈希来调用该方法.这可能吗? 解决方法
确保methodName是一个符号,而不是一个字符串(例如methodName.to_sym)
无法将哈希传递给发送,您需要一个数组,并且其中的键/值不是特定的顺序,但方法的参数需要,因此您需要一些合理的方法来获取值正确的订单. 然后,我认为您需要使用splat运算符(*)传入该数组以进行发送. methodName = 'center' params = {'param1' => 20,'param2' => '_'}.sort.collect{|k,v| v} a = "This is a string" a.send(methodName.to_sym,*params) => "__This is a string__" 这样的事情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |