При присвоении одной переменной другой

Если 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.