В данном конкретном случае нет разницы, но это может быть по привычке.Всякий раз, когда я вижу, что nil?
используется, оно почти всегда используется не по назначению.В Ruby очень немногие вещи являются логически ложными, только буквальные false
и nil
.
Это означает, что код, подобный if (!x.nil?)
, почти всегда лучше выражается как if (x)
, если только не ожидается, что x
может быть буквальным false
.
Я бы переключил это на ||= false
, потому что это имеет тот же результат, но это в основном вопрос предпочтений.Единственным недостатком является то, что назначение будет происходить каждый раз, когда запускается строка, а не один раз с тестом .nil?
.