def return_a a.blank? ? b : a end
有没有更方便的写法?
a || b ?
a || b
a || b 不行的,例如 a 为 [] 或者 "" 时,它的值仍是 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
?
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
require 'active_support/core_ext/object/blank' a.presence || b
presence
#3 楼 @willmouse 这个赞,第一次知道presence的用法
presence 方法不错。另外,如果要判断 Hash,Array,String,Object 方法是否为空,也可以用 present?,跟 empty?,blank?方法等类似。