Ruby 字符串 a 不为空的表达式怎么写比较高效呢?

yangman_wenzhu · 2014年04月21日 · 最后由 zhufenggood 回复于 2014年04月21日 · 9584 次阅读

如题:想实现

a = "ttttt"
if 2 < 3 && a.blank?
 p a
end

这样写高效吗?

a.blank? 为 true 是表示 a 为 nil 或者 a 为 "" 的情况 如果想要判断字符串 a 不为空,可以尝试

unless a.blank?
    ...
end

#1 楼 @lionzixuanyuan 嗯 ruby 语法方面的看那些书比较合适呢?

#2 楼 @yangman_wenzhu 如果你问我的话,我觉得直接看代码就好了,如果有看不懂,没见的语法,查一下,会记得比较快

#3 楼 @lionzixuanyuan 嗯 好的呢,以前看了 不懂就自己编写简单例子运行下,但是总是记不住,哈哈!多谢

#4 楼 @yangman_wenzhu 你的账号注册的比我早,难道常年潜水?

if a.present?

#6 楼 @swordray 判断字符串是否存在,用 blank?是否更好些?

9 楼 已删除

楼主你要确定是 Rails 项目才可以这么写。blank?present?都是 Rails 的,不是 Ruby 的。

这两个你看哪个顺就用哪个,没必要纠结在这些细节,浪费时间

#7 楼 @yangman_wenzhu present? 是 blank? 的反义词吧?

# File activesupport/lib/active_support/core_ext/object/blank.rb, line 22
def present?
  !blank?
end

上千万次调用会看出区别....

#10 楼 @billy 哦 是 rails 项目 是我自己没有把问题搞清楚。先以解决问题为向导

我在想,既然现在选择用 Ruby,就不用纠结哪种方式更高效了~

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