执行以下代码后变量 a 和 b 的值:
a = 1, 2, 3
b, = 1, 2, 3
结果是
a = [1, 2, 3]
b = 1
为什么?
执行以下代码后变量 a 和 b 的值:
a = 1, 2, 3
b, = 1, 2, 3
结果是
a = [1, 2, 3]
b = 1
为什么?
逗号使 ruby 认为您将进行并行赋值,其中 b 和另一个变量将通过相同的表达式进行赋值,如下所示:
b, c = 1, 2
结果 b == 1 和 c == 2。
所以这里 ruby 将右边的第一个值赋给 b,并期望将右边的下一个值赋给另一个变量,但是没有找到,所以它丢弃了剩余的值。
这是 ruby 的并行分配。
表示将a = 1, 2, 3
数组放入.
表示把 1 放到, 把 2 放到 ? 和 3 到 ?。如果你试试[1, 2, 3]
a
b, = 1, 2, 3
b
b,c,d = 1,2,3
你明白我的意思
在 Ruby 中,您可以进行并行分配。例如:a, b = 1, 2 表示 a == 1 和 b == 2 在此示例中:a, b, = 1, 2, 3. a == 1 和 b == 2 并且没有变量分配值 3。在此示例中:a,b = 1。a == 1,b 为 nil