相关疑难解决方法(0)

带有 (*) 签名的 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
查看次数

使用作为参数时的"*"的含义(不像*arg,只是*)

当我阅读Rails代码时,我发现了这一点

def save(*)
  create_or_update || raise(RecordNotSaved)
end
Run Code Online (Sandbox Code Playgroud)

怎么*办?:O我知道当我们使用它时会发生什么*args,但在这种情况下,它很简单*.

参考https://github.com/rails/rails/blob/master/activerecord/lib/active_record/persistence.rb#L119

ruby ruby-on-rails

8
推荐指数
2
解决办法
201
查看次数

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

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

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

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

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

ruby

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

Ruby,用 * 初始化方法

我是 ruby​​ 新手,发现了这段代码:

def initialize(*)
  # ...
end
Run Code Online (Sandbox Code Playgroud)

参数列表*中的含义是什么?initialize

ruby ruby-on-rails

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

标签 统计

ruby ×4

ruby-on-rails ×2