ruby 在案例时使用带阵列的splat

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 在案例时使用带阵列的splat相关的知识,希望对你有一定的参考价值。

# if we want to check whether a particular value is in an array, we have
# a couple options... Most times simply calling array.include?(element) is
# sufficient, but we can also get creative by using the splat function
# with a case statement to check multiple arrays ;)

hondai  = ['hondai', 'acura', 'civic', 'element', 'fit', ...]
toyota = ['toyota', 'lexus', 'tercel', 'rx', 'yaris', ...]

case car
when *toyota then # Do something for Toyota cars
when *hondai then # Do something for Hondai cars
...
end

# ...which translates to:
case car
when 'toyota', 'lexus', 'tercel', 'rx', 'yaris', ... then # Do something for Toyota cars
when 'hondai', 'acura', 'civic', 'element', 'fit', ... then # Do something for Hondai cars
...
end

# ...which is identical to:
case
when toyota.include?(car) then # Do something for Toyota cars
when hondai.include?(car) then # Do something for Hondai cars
...
end

以上是关于ruby 在案例时使用带阵列的splat的主要内容,如果未能解决你的问题,请参考以下文章

Double-splat 运算符破坏性地修改了哈希——这是一个 Ruby 错误吗?

Ruby,Splat 的源代码?

了解范围和数组中的 ruby​​ splat

ruby 使用splat进行方法参数

如何在 Ruby 中为 splat 参数设置默认值

Haskell 有像 Python 和 Ruby 这样的 splat 运算符吗?