Ruby if/assign statement?

107
10

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

     if value = (key rescue nil)
..
end

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

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

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 2 года, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

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