相关疑难解决方法(0)

裸星号作为方法定义中的参数:def f(*)

我知道这意味着什么:

def f(*args)
  ...
end
Run Code Online (Sandbox Code Playgroud)

但是这意味着什么,为什么要使用它呢?它也可以出现在命名参数中吗?

def f(*)
  ...
end
Run Code Online (Sandbox Code Playgroud)

ruby parameters

22
推荐指数
1
解决办法
4635
查看次数

带有 (*) 签名的 Ruby 方法

在这篇关于模式匹配的有趣博客文章中,有一些代码的方法签名为(*)

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上提到了这个问题

ruby

16
推荐指数
2
解决办法
2376
查看次数

Ruby参数列表中的单个splat /星号是什么意思?

我今天在浏览Rails 3 ActiveRecord源代码,并找到了一个方法,其中整个参数列表是单个星号.

def save(*)
Run Code Online (Sandbox Code Playgroud)

我找不到一个很好的描述(虽然我根据我对splat参数的了解有一些想法).

它做了什么,为什么要使用它?

ruby

6
推荐指数
1
解决办法
1126
查看次数

标签 统计

ruby ×3

parameters ×1