将“nil”分配给多个变量
Assign `nil` to multiple variables
我需要将 nil
分配给多个变量。我有:
a = nil
b = nil
c = nil
哪种方法最有效?
它几乎不会短于:
a = b = c = nil
要分配 nil
,您可以使用
a = b = c = nil
但请记住,这仅适用于不可变对象。
看这个例子:
a = b = c = "test"
b << "1"
a # => "test1"
您可能需要尝试一下:
a, b, c = 3.times.map{ "test" }
您可以执行以下操作:
a,b,c = nil,nil,nil
# or
a,b,c = [nil] * 3
您还可以执行以下操作,利用变量的默认值是 nil
如果未明确分配一个这一事实。
a,b,c = nil
在上述情况下,显式 nil
将分配给 a
,而 b
和 c
将分配给默认值 nil
。因此,这是一个仅适用于 nil
.
的技巧
您还可以通过使用虚拟变量 _
作为并行赋值中的第一个变量,让所有三个变量都默认赋值 nil
。
_,a,b,c = nil
我需要将 nil
分配给多个变量。我有:
a = nil
b = nil
c = nil
哪种方法最有效?
它几乎不会短于:
a = b = c = nil
要分配 nil
,您可以使用
a = b = c = nil
但请记住,这仅适用于不可变对象。
看这个例子:
a = b = c = "test"
b << "1"
a # => "test1"
您可能需要尝试一下:
a, b, c = 3.times.map{ "test" }
您可以执行以下操作:
a,b,c = nil,nil,nil
# or
a,b,c = [nil] * 3
您还可以执行以下操作,利用变量的默认值是 nil
如果未明确分配一个这一事实。
a,b,c = nil
在上述情况下,显式 nil
将分配给 a
,而 b
和 c
将分配给默认值 nil
。因此,这是一个仅适用于 nil
.
您还可以通过使用虚拟变量 _
作为并行赋值中的第一个变量,让所有三个变量都默认赋值 nil
。
_,a,b,c = nil