将`nil`分配给多个变量

时间:2016-01-15 12:38:20

标签: ruby variable-assignment

我需要将nil分配给多个变量。我有:

a = nil
b = nil
c = nil

哪种方法最有效?

3 个答案:

答案 0 :(得分:5)

它几乎不会短于:

a = b = c = nil

答案 1 :(得分:3)

您可以执行以下操作:

a,b,c = nil,nil,nil
# or
a,b,c = [nil] * 3

您还可以执行以下操作,如果未明确指定变量,则可以利用变量的默认值nil这一事实。

a,b,c = nil

在上述情况下,明确nil将分配给a,而bc将获得默认nil。因此,它的一个技巧只适用于nil

通过使用虚拟变量nil作为并行赋值中的第一个变量,您还可以为所有三个变量分配默认值_

_,a,b,c = nil

答案 2 :(得分:0)

要指定nil,您可以使用

a = b = c = nil

但请记住,这仅适用于不可变对象。

见这个例子:

a = b = c = "test"
b << "1"
a # => "test1"

你可能需要尝试:

a, b, c = 3.times.map{ "test" }