При присвоении одной переменной другой
Если a = 1
и b = nil
, и вы установили b = a
, то значение b
будет 1
, потому что вы присвоили b
значение a
.
Если a = 1
и b = 2
, и вы установили b = a
, то значение b
также будет 1
, потому что вы присвоили b
значение a
, и это заменило предыдущее значение b
, которое было 2
.
С обычным оператором присваивания (=
) не имеет значения, какое значение ранее имела переменная; когда переменной присваивается новое значение, она всегда принимает это значение.
Оператор ||=
(Double-Pipe Equals) присваивает значение переменной, только если переменная в настоящее время имеет значение nil
.
Если a = 1
и b = nil
, и вы установили b ||= a
, то значение b
будет 1
, поскольку b
ранее имело значение nil
, поэтому ему можно присвоить значение a
с помощью оператора ||=
.
Если a = 1
и b = 2
, а вы установили b ||= a
, то значение b
останется 2
, потому что b
уже имеет значение, отличное от nil
, поэтому оператор ||=
не может присвоить ему значение a
.