Ruby 哈希类方法has_key?与方法成员



Ruby Hash的两种方法之间有什么区别,还是只是"有不止一种方法可以做到这一点"?
我看不出两者之间有任何可衡量的差异。
谢谢

根据 Ruby 源代码,has_key?key?include?member? 是相同的实现。

要查看方法定义的源代码,请参阅文档,找到您要查找的方法,然后单击该方法以展开以查看实际源代码:

https://ruby-doc.org/core-2.5.0/Hash.html#method-i-member-3F

    rb_hash_has_key(VALUE hash, VALUE key)
    {
        if (!RHASH(hash)->ntbl)
            return Qfalse;
        if (st_lookup(RHASH(hash)->ntbl, key, 0)) {
            return Qtrue;
        }
        return Qfalse;
    }

https://ruby-doc.org/core-2.5.0/Hash.html#method-i-has_key-3F

    rb_hash_has_key(VALUE hash, VALUE key)
    {
        if (!RHASH(hash)->ntbl)
            return Qfalse;
        if (st_lookup(RHASH(hash)->ntbl, key, 0)) {
            return Qtrue;
        }
        return Qfalse;
    }

最新更新