使用splat运算符的示例*

时间:2016-06-29 00:08:55

标签: ruby

阅读完文档并阅读一些示例后,我仍然不满意splat运算符*完全用法。什么时候使用好?什么时候使用不好?我可以在网上找到它在文档上的一些用途,但我似乎找不到任何简单的例子来说明它可能导致的好坏。感谢

1 个答案:

答案 0 :(得分:1)

我可以向您展示一些如何使用的例子。

假设您有一个需要一些参数的方法

def foo(a,b,c)

并且您想要调用此方法,使用数组提供参数的值。你可以写:

foo(*[1,2,3])

另一种情况是你希望修补记录但不想破坏原始功能。例如,在rails模型中覆盖save

def save(*args)
  # do something custom here
  super(*args)
end

这就是说"我不关心这个函数的参数,但我想确保它们全部传递给super调用。 "