我知道这意味着什么:
def f(*args)
...
end
Run Code Online (Sandbox Code Playgroud)
但是这意味着什么,为什么要使用它呢?它也可以出现在命名参数中吗?
def f(*)
...
end
Run Code Online (Sandbox Code Playgroud) 在这篇关于模式匹配的有趣博客文章中,有一些代码的方法签名为(*)
class Request < Data.define(:path, :scheme, :format)
def deconstruct_keys(*)
{ path: @path, scheme: @scheme, format: @format }
end
def deconstruct(*)
path.split("/").compact
end
end
Run Code Online (Sandbox Code Playgroud)
这不同于
def a_method(*args)
Run Code Online (Sandbox Code Playgroud)
我在Ruby 文档中找不到任何信息。
这是什么def deconstruct_keys(*)意思?
注意Ruby Weekly上提到了这个问题
我今天在浏览Rails 3 ActiveRecord源代码,并找到了一个方法,其中整个参数列表是单个星号.
def save(*)
Run Code Online (Sandbox Code Playgroud)
我找不到一个很好的描述(虽然我根据我对splat参数的了解有一些想法).
它做了什么,为什么要使用它?