Dav*_*ave 0 ruby string ruby-on-rails activesupport is-empty
我想
arg.present?
Run Code Online (Sandbox Code Playgroud)
是为了检查一个字符串是空的还是零的真相和光,但是我注意到一个令人困惑的情况.如果我的字符串是:
arg = "\t"
Run Code Online (Sandbox Code Playgroud)
我得到了错误的结果:
2.4.0 :003 > arg = "\t"
=> "\t"
2.4.0 :004 > arg.present?
=> false
Run Code Online (Sandbox Code Playgroud)
检查我的字符串参数是空还是零的更简单的方法是什么?当然,我可以写,arg.empty? || arg.nil?但我正在寻找一种更简洁的方式.
所以#present?它与之相反#blank?,并被#blank?定义为"如果对象是空的,如果它是假的,空的,或者是空白字符串,那么它就是空白的."
"\ t"是一个空白字符串(一个标签),因此它是#blank?,而不是#present?
请注意,由于字符串的构造方式,"\ t"仅被解释为制表符.
2.2.5 :001 > "\t".present?
=> false
2.2.5 :002 > '\t'.present?
=> true
Run Code Online (Sandbox Code Playgroud)