синтаксический сахар рубина: работа с nils

, вероятно, уже спрашивал, но я не мог его найти .. вот 2 распространенные ситуации (для меня при программировании рельсов ..), которые сложно писать на ruby:

"a string".match(/abc(.+)abc/)[1]

в этом случае я получаю сообщение об ошибке, потому что строка не ' t соответствует, поэтому оператор [] вызывается при nil. Я бы хотел найти более приятную альтернативу следующему:

temp="a string".match(/abc(.+)abc/); temp.nil? ? nil : temp[1]

вкратце, если он не соответствует, просто верните nil без ошибки

Вторая ситуация такова:

var = something.very.long.and.tedious.to.write
var = something.other if var.nil?

В этом случае я хочу присвоить что-то var, только если это не nil, в случае nil я назначу что-нибудь. другое ..

Есть предложения? Спасибо!

5
задан Bob Aman 30 December 2010 в 20:08
поделиться