如何使用splat作为ruby方法参数



我正在看一个ruby方法

def test(*)
  puts "hello"
end

我对*感到困惑。显然,如果我运行test,它会返回"hello"。但是如果我传递一个参数到test…

test("this argument")

我如何在测试方法中调用该方法而仍然有飞溅?我只是对没有名字的飞溅物感到非常困惑。它是如何工作的?

这篇文章有一个相当详细的低级解释:http://blog.honeybadger.io/ruby-splat-array-manipulation-destructuring/

引用最相关的部分:

def go(x, *args, y)
  puts x # => 1
  puts y # => 5
  puts args.inspect # => [2,3,4]
end
go(1, 2, 3, 4, 5)

相关内容

  • 没有找到相关文章

最新更新