问题标签 [double-splat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
516 浏览

ruby - double splat 在方法调用中的作用是什么?

在准备Ruby 协会认证的 Ruby 程序员考试时,我正在解决预备测试并遇到这种情况:

现在,我知道如何使用 double-splat 将参数中的参数转换为哈希,例如:

但是,我也知道你不能随机双打。


问题

**在方法调用(不是定义)中使用双 splat ( ) 有什么用?

简单地说,这是什么时候:

比这更好:


编辑:测试双板的有用性(未找到)

无论有没有它,参数都是相同的。

我的意思是,您甚至可以毫无问题地将哈希传递给使用关键字参数定义的方法,并且它会智能地分配适当的关键字:

to_h使用适当的和方法对随机类进行双重 splatto_hash不会做任何没有它就无法完成的事情:

0 投票
2 回答
171 浏览

ruby - 使 Ruby 对象响应双 splat 运算符**

我有一个库,它有这样的#execute方法

我有一个生成数据的类args(根据用户能力有很多逻辑)

现在,当我使用时,#execute我总是必须记住使用#to_h,这很烦人,当有人忘记它时会导致错误:

所以我想知道我的Abilities班级是否可以以某种方式响应**(double splat) 运算符,以便我可以简单地传递对象:

当我尝试这样调用它时,它会引发错误:

那么,有没有办法让我的Abilities班级表现得像一个Hash?我可以像这样推导出它,Abilities < Hash但是我上面有所有的哈希逻辑,这看起来很脏。