首页 > 解决方案 > Ruby 的哈希“值”有区别吗?和“has_value?”

问题描述

我正在查看 和的Hash文档。但是,链接会导致有关.has_value?value?value?has_value?

value?似乎与has_value?(Ruby 3.02)相同。

这是否意味着value?被弃用或者这是一个文档错误?

标签: ruby

解决方案


您可以通过比较它们的方法对象来检查它们是否相同:

Hash.instance_method(:value?) == Hash.instance_method(:has_value?)
#=> true

UnboundMethod#==true如果方法引用相同的实现,则返回。


这是否意味着价值?正在被弃用还是这是一个文档错误?

这似乎是一个文档错误。来自官方网站的文档对别名更加明确:

https://docs.ruby-lang.org/en/3.0.0/Hash.html#method-i-has_value-3F

has_value?(value) → true or false

true如果value是 中的值,则返回self,否则返回false

也别名为:value?

但是, 的条目value?没有标题:(value?(value) → true or false缺少粗体部分)

https://docs.ruby-lang.org/en/3.0.0/Hash.html#method-i-value-3F

true如果value是 中的值,则返回self,否则返回false

别名:has_value?


推荐阅读