, возможно, уже спрашивал, но я не смог его найти ... вот две распространенные ситуации (для меня, когда программируются рельсы ..), которые расстраивают, когда пишут на ruby:
"a string".match(/abc(.+)abc/)[1]
в этом случае я получаю ошибку, потому что строка не совпадает, поэтому оператор [] вызывается для nil. То, что я хотел бы найти, является лучшей альтернативой следующему:
temp="a string".match(/abc(.+)abc/); temp.nil? ? nil : temp[1]
Вкратце
, если он не совпадает, просто верните ноль без ошибки
Вторая ситуация такая:
var = something.very.long.and.tedious.to.write
var = something.other if var.nil?
В этом случае я хочу назначить что-то для var, только если это не ноль, в случае, если это ноль, я назначу что-то другое.
Есть предложения?
Спасибо!