Ruby if/assign statement?

103
10

Я перешел к следующему коду, и я понятия не имею, что он делает. Почему они используют = для сравнения значений или назначают значения и проверяют, истинно ли значение после назначения?

     if value = (key rescue nil)
..
end

спросил(а) 2018-02-28T18:48:00+03:00 1 год, 12 месяцев назад
1
Решение
70

Это эквивалентно:

value = key rescue nil

if value
..
end

или же

value = begin
key
rescue
nil
end

if value
..
end

Помните, что nil и false являются единственными двумя объектами, которые являются falsey в ruby, и поскольку value здесь может быть nil, оператор if может возвращать false.

ответил(а) 2018-02-28T18:50:00+03:00 1 год, 12 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема