Ruby: Как увеличить число, которое может быть nil? Как я могу упростить это в Ruby: x = (x || 0) + 1 ? Ответ 1 Вы можете использовать to_i для преобразования nil в 0 x = x.to_i + 1 Или вы можете использовать succ x = x.to_i.succ Ответ 2 Это зависит от того, что вы считаете простым. Вы можете использовать (x ||= 0) += 1 но я думаю, что соглашусь на вашу версию. Если x - значение Хэш, см. этот ответ для использования значений по умолчанию в хэшах. Ответ 3 Ваш код может закончиться ошибкой: x = 'a' x = (x || 0) + 1 #can't convert Fixnum into String (TypeError) Существует возможность использовать to_i с +1 или succ (см. ответ Chandras) Но, возможно, только succ также поможет вам: x = x.succ if x.respond_to?(:succ) Правильный ответ зависит от ваших входных данных и того, что вам нужно.
Ответ 1 Вы можете использовать to_i для преобразования nil в 0 x = x.to_i + 1 Или вы можете использовать succ x = x.to_i.succ
Ответ 2 Это зависит от того, что вы считаете простым. Вы можете использовать (x ||= 0) += 1 но я думаю, что соглашусь на вашу версию. Если x - значение Хэш, см. этот ответ для использования значений по умолчанию в хэшах.
Ответ 3 Ваш код может закончиться ошибкой: x = 'a' x = (x || 0) + 1 #can't convert Fixnum into String (TypeError) Существует возможность использовать to_i с +1 или succ (см. ответ Chandras) Но, возможно, только succ также поможет вам: x = x.succ if x.respond_to?(:succ) Правильный ответ зависит от ваших входных данных и того, что вам нужно.