Ruby 可变汇率?
我如何解释这个表达式,或者请告诉我在哪里可以找到这种表达式的定义,最初我认为有交换值,这就是所谓的“并行赋值”(现在你可以用谷歌搜索它)。这大致相当于:Ruby 可变汇率?,ruby,Ruby,我如何解释这个表达式,或者请告诉我在哪里可以找到这种表达式的定义,最初我认为有交换值,这就是所谓的“并行赋值”(现在你可以用谷歌搜索它)。这大致相当于: @current_engine, engine_was = engine.to_sym, @current_engine 首先,计算右侧的值,然后分配它们。这就是为什么您还可以使用此技巧交换值: _a = engine.to_sym _b = @current_engine @current_engine = _a engine_was =
@current_engine, engine_was = engine.to_sym, @current_engine
首先,计算右侧的值,然后分配它们。这就是为什么您还可以使用此技巧交换值:
_a = engine.to_sym
_b = @current_engine
@current_engine = _a
engine_was = _b
当将
y
赋值为x
时,它将使用旧值,该值保存在此表达式开头。您可以将其展开为三个步骤:
x, y = y, x
a = engine.to_sym, @current_engine
# => [ 1, 0 ]
答案解释了如何使用并行赋值来交换值(如这里所示),但它有时以更普通的方式使用:
a,b=1,2
,结果是a=>1,b=>2
。有些人喜欢这样,有些人不喜欢。就我个人而言,我保留了用于Swap的并行任务。@CarySwoveland:注意得好,谢谢:)
@current_engine = a[ 0 ]
engine_was = a[ 1 ]