我可以用一个三元运算符是这样的:红宝石:获取值,如果真或
a.empty? ? a : b
如果a
只是一个短暂的变量,这个工程。如果我不想使用一个变量,但是,例如,我在一个复杂的数组函数链中,我没有临时变量,如何在不重复链的情况下执行此操作?这对我来说似乎只与零值在哪里工作,我可以使用or
a.filter { bla bla bla }.map { bla bla bla }.reduce { bla bla } || b
但对于任何其他类型的支票如何做到这一点?
a.filter { bla bla bla }.map { bla bla bla }.reduce { bla bla }.empty? ? a.filter { bla bla bla }.map { bla bla bla }.reduce { bla bla } : b
一个问题。如果a是'空',为什么你想要再次执行?我错在想:“如果filter-> map - > reduce给你一个空的结果,你想再次运行它,为什么?” – Arindam 2013-02-26 19:09:19
不知何故使用临时变量不是一个选项? – nicooga 2013-02-26 19:09:50
我只是检查空的?过滤后。 – 2013-02-26 19:11:55