新手问题 a.blank? ? b : a 怎么写来的方便?

QueXuQ · 2014年04月04日 · 最后由 hxplove01 回复于 2014年04月04日 · 2131 次阅读
def return_a
  a.blank? ? b : a
end

有没有更方便的写法?

匿名 #2 2014年04月04日

a || b 不行的,例如 a[] 或者 "" 时,它的值仍是 a 的值。

嫌连着两个 ? 不好看的话可以这样…… if a.blank? then b else a end 或者 unless a.blank? then a else b end 或者 (a unless a.blank?) || b 或者 (b if a.blank?) || a

#3 楼 @willmouse 这个赞,第一次知道presence的用法

presence 方法不错。另外,如果要判断 Hash,Array,String,Object 方法是否为空,也可以用 present?,跟 empty?,blank?方法等类似。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号