使用带有时间的 splat 运算符



Case 语句:

case x
when 1
  "one"
when 2
  "two"
when 3
  "three"
else
  "many"
end

使用 === 运算符进行评估。对when表达式的值调用此运算符,并将case表达式的值作为参数。上面的案例陈述等效于以下内容:

if 1 === x
  "one"
elsif 2 === x
  "two"
elsif 3 === x
  "three"
else
  "many"
end

在这种情况下:

A = 1
B = [2, 3, 4]
case reason
when A
  puts "busy"
when *B
  puts "offline"
end

when *B部分不能重写为 *B === 2

这是关于 splat 运算符的吗?splat 运算符是关于分配的,而不是比较的。案例陈述如何处理when *B

但是 splat 运算符是关于分配的,而不是比较的。

在这种情况下,*将数组转换为参数列表:

when *[2, 3, 4]

相当于:

when 2, 3, 4

就像在方法调用中一样:

foo(*[2, 3, 4])

相当于:

foo(2, 3, 4)

相关内容

  • 没有找到相关文章

最新更新