对于此示例哈希
hash = {:key=>"value"}
Run Code Online (Sandbox Code Playgroud)
所有这些都是true:
hash.key?(:key)
hash.has_key?(:key) #deprecated in favor of .key?
hash.include?(:key)
hash.member?(:key)
Run Code Online (Sandbox Code Playgroud)
Ruby Docs为这三个提供相同的解释
"Returns `true` if the given key is present in ..."
Run Code Online (Sandbox Code Playgroud)
我的问题是:在实际的Ruby使用中,每个都有特定的用例吗?或者,这只是有多种方法来解决同样的问题?
非常感谢指向特定文档或参考的链接!
Ruby 中的许多类都有多个方法来做完全相同的事情。这是为了适应因接触或熟悉另一种编程语言而习惯于特定约定的人。常见例子:
"string".length == "string".size
%w[ x ].length == %w[ x ].size
%w[ a b c ].map(&:uppercase) == %w[ a b c ].collect(&:uppercase)
Run Code Online (Sandbox Code Playgroud)
大多数情况下,文档会提供一些提示,表明这只是另一种方法的替代名称。