(irb) a, b = 5
a => 5
b => nil不应该是相反的吗?这里到底发生了什么?
发布于 2015-07-16 18:45:01
当我写这篇文章的时候,我的同事发现了原因:
Ruby将a, b = 5视为a, b = 5, nil
在Python3中,抛出一个TypeError。
发布于 2015-07-16 19:13:56
为了使用多个赋值将一个值赋值给b,您必须给它第二个值。
a, b = 5, 6
a = 5
b = 6当您不提供第二个值时,Ruby会给b一个nil值
发布于 2015-07-17 06:00:13
这是一个重要的Ruby特性,称为多重赋值。
多个赋值执行来自表达式或数组的多个赋值。这是一种一次分配多个变量的快速方法。
如果声明了三个变量,但只为其中两个变量赋值,则默认情况下,第三个变量将接收nil。
这份文件的多重赋值部分解释了这个特性和几个例子。
https://stackoverflow.com/questions/31462145
复制相似问题