Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby:在组中分配变量_Ruby_Variables_Variable Assignment - Fatal编程技术网

Ruby:在组中分配变量

Ruby:在组中分配变量,ruby,variables,variable-assignment,Ruby,Variables,Variable Assignment,在Ruby中,是否可以按组命名变量,可能是这样 (variable1, variable2, variable3) = 0 您可以执行以下操作: variable1 = variable2 = variable3 = 0 阅读此问题: 因此,一般方法是: variable1, variable2, variable3 = [0] * 3 您可以执行以下操作: variable1 = variable2 = variable3 = 0 阅读此问题: 因此,一般方法是: variab

在Ruby中,是否可以按组命名变量,可能是这样

(variable1, variable2, variable3) = 0
您可以执行以下操作:

 variable1 = variable2 = variable3 = 0
阅读此问题

因此,一般方法是:

 variable1, variable2, variable3 = [0] * 3
您可以执行以下操作:

 variable1 = variable2 = variable3 = 0
阅读此问题

因此,一般方法是:

 variable1, variable2, variable3 = [0] * 3

variable1=variable2=variable3=0
对于整数来说可能是安全的,但是在ruby中,一切都是一个对象,它们实际上都指向同一个对象。对于其他类型,某些操作可能最终将一个转换为一个副本,但您不能假设情况会是这样,并且您可能最终无意中一次修改了所有这些类型。 例如,如果您使用的是字符串:

variable1 = variable2 = variable3 = "hello"
variable1.upcase!
puts variable1
puts variable2
puts variable3
  >>> HELLO
  >>> HELLO
  >>> HELLO
更安全的是并行分配:

variable1, variable2, variable3 = 0, 0, 0

Edit:为了清晰起见,编辑了几个句子。

variable1=variable2=variable3=0对于整数来说可能是安全的,但是在ruby中,一切都是一个对象,它们实际上都指向同一个对象。对于其他类型,某些操作可能最终将一个转换为一个副本,但您不能假设情况会是这样,并且您可能最终无意中一次修改了所有这些类型。 例如,如果您使用的是字符串:

variable1 = variable2 = variable3 = "hello"
variable1.upcase!
puts variable1
puts variable2
puts variable3
  >>> HELLO
  >>> HELLO
  >>> HELLO
更安全的是并行分配:

variable1, variable2, variable3 = 0, 0, 0
编辑:为了清晰起见,编辑了几个句子