object.presence 的意义何在? [英] What is the point of object.presence?

查看:34
本文介绍了object.presence 的意义何在?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Rails 文档中,提供的示例object.presence 方法是:

In the Rails docs, the example provided for the object.presence method is:

region = params[:state].presence || params[:country].presence || 'US'

但这不就等同于:

region = params[:state] || params[:country] || 'US'

使用presence有什么意义?

推荐答案

重点是:

''.presence
# => nil

所以如果 params[:state] == '':

region = params[:state].presence || 'US'
# => 'US'
region = params[:state] || 'US'
# => ''

更重要的是,它以类似的方式工作(即,如果对象为空",则返回 nil)在每个响应 empty? 方法的对象上,例如:

What's more, it works in similar way (that is, returns nil if object is 'empty') on every object that responds to empty? method, for example:

[].presence
# => nil

这里是文档,供参考:

http://api.rubyonrails.org/classes/Object.html#method-i-presence

这篇关于object.presence 的意义何在?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆