相关疑难解决方法(0)

(一元)*运算符在这个Ruby代码中做了什么?

鉴于Ruby代码

line = "first_name=mickey;last_name=mouse;country=usa" 
record = Hash[*line.split(/=|;/)] 
Run Code Online (Sandbox Code Playgroud)

除了*操作员之外,我理解第二行中的所有内容 - 它在做什么以及文档在哪里?(正如你可能猜到的那样,寻找这个案子很难......)

ruby operators splat

169
推荐指数
3
解决办法
5万
查看次数

裸星号作为方法定义中的参数: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
查看次数

使用作为参数时的"*"的含义(不像*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 ×3

operators ×1

parameters ×1

ruby-on-rails ×1

splat ×1