And*_*rew 3 ruby ruby-on-rails-4
有人可以详细解释这个Object方法(我的意思是这里使用的语法:空?,!!空?和!self):
def blank?
respond_to?(:empty?) ? !!empty? : !self
end
Run Code Online (Sandbox Code Playgroud)
或者也许建议好书来阅读主题.
如果
self有方法empty?则返回double not empty?否则返回single not self.
not(!)是Ruby中用于将任何对象转换为布尔值的惯用方法
single not(!)返回false用于任何truthy和true任何falsey对象.
double not(!!)返回true用于任何truthy和false任何falsey对象.
Ruby中的虚假对象是,nil而且false任何其他对象都是真实的.
所以.基本上respond_to?(:empty?) ? !!empty? : !self检查当前对象是否已定义方法empty?,如果此方法返回任何真实或假的错误响应,则返回true.如果empty?未定义,则如果self不是false或nil(任何falsey对象),它将始终返回false .
| 归档时间: |
|
| 查看次数: |
196 次 |
| 最近记录: |