在Ruby中使用(:send)关键字参数?
发布时间:2020-12-16 19:17:57 所属栏目:百科 来源:网络整理
导读:我有一个私有方法,我试图在 Ruby中使用#send进行一些测试.该方法很复杂,我不希望暴露在类之外,因此我想测试该方法,但我也不需要将其列为公共方法.它有关键字参数.如何使用send来调用方法,还可以传递关键字参数/命名参数?有办法吗? 该方法如下所示: def so
我有一个私有方法,我试图在
Ruby中使用#send进行一些测试.该方法很复杂,我不希望暴露在类之外,因此我想测试该方法,但我也不需要将其列为公共方法.它有关键字参数.如何使用send来调用方法,还可以传递关键字参数/命名参数?有办法吗?
该方法如下所示: def some_method(keyword_arg1:,keyword_arg2:,keyword_arg3:nil) 解决方法
取决于如何定义关键字args.
如果它们因任何原因而内联定义,请将它们内联传递: SomeClass.send(:some_method,{keyword_arg1: 'foo',keyword_arg2: 'bar'}) 如果它们是在哈希中定义的,则可以将其解压缩: hash = {keyword_arg1: 'baz',keyword_arg2: 'bing'} SomeClass.send(:some_method,**hash) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |