相关疑难解决方法(0)

double*(splat)运算符的作用是什么

你见过像这样声明的函数吗?

def foo a, **b
  ...
end
Run Code Online (Sandbox Code Playgroud)

我知道单个*是splat运算符.什么**意思?

ruby splat

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

双splat运算符破坏性地修改哈希 - 这是一个Ruby bug吗?

我注意到我发现**Ruby 2.1.1中的(双splat)运算符是一个非常令人惊讶的行为.

当在a之前使用键值对时**hash,哈希保持不变; 但是,当键值对仅在之后使用时**hash,哈希值将被永久修改.

h = { b: 2 }

{ a: 1, **h }        # => { a: 1, b: 2 }
h                    # => { b: 2 }

{ a: 1, **h, c: 3 }  # => { a: 1, b: 2, c: 3 }
h                    # => { b: 2 }

{ **h, c: 3 }        # => { b: 2, c: 3 }
h                    # => { b: 2, c: …
Run Code Online (Sandbox Code Playgroud)

ruby syntax hash splat double-splat

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

标签 统计

ruby ×2

splat ×2

double-splat ×1

hash ×1

syntax ×1