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

标签 ruby methods splat

<分区>

我在看一个 ruby​​ 方法

def test(*)
  puts "hello"
end

我对 *.显然,如果我运行测试,它会返回“hello”。但是,如果我将参数传递给测试会怎样...

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)

关于ruby - 如何使用 splat 作为 ruby​​ 方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40495812/

相关文章:

javascript - Rails 应用程序中的本地人问题

Ruby 字符串连接加空格

ruby - 有没有没有 (*)splat 参数的方法来在 Ruby 中传递多个参数?

powershell - 用对象的属性喷涂函数

ruby - 字符串文字前面的 * 在 ruby​​ 中有什么作用?

ruby-on-rails - 无法使用 rails generate 生成 mongoid 配置文件

mysql - 我可以按预定顺序加载 ActiveRecord-Objects 吗?

mysql - 以最有效的方式获取铁路中的时差(以分钟为单位)

django - 使用 django_filter 过滤模型的计算方法

java - 在同一个Java数组中调用扩展类函数