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

QueXuQ · April 04, 2014 · Last by hxplove01 replied at April 04, 2014 · 2143 hits
def return_a
  a.blank? ? b : a
end

有没有更方便的写法?

Unknow user #1 April 04, 2014

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?方法等类似。

You need to Sign in before reply, if you don't have an account, please Sign up first.