📅  最后修改于: 2023-12-03 15:27:32.187000             🧑  作者: Mango
include?()
方法简介在 Ruby 中,include?()
是一个用于判断一个对象是否包含某个元素或者字符串的方法。
在 Ruby 中,字符串、数组、哈希表都可以使用 include?()
方法。
使用 include?()
方法的基本语法如下:
obj.include?(element)
其中,obj
是要检查的对象,element
是要检查的元素或者字符串。
如果检查到 obj
中包含了 element
,则返回 true
,否则返回 false
。
下面是一些实际的例子:
# 检查字符串中是否包含指定的字符
str = 'hello world'
puts str.include?('o') # true
puts str.include?('foo') # false
# 检查数组中是否包含指定的元素
arr = [1, 2, 3]
puts arr.include?(2) # true
puts arr.include?(4) # false
# 检查哈希表中是否包含指定的键或者值
hash = { 'a' => 1, 'b' => 2 }
puts hash.include?('a') # true
puts hash.include?(2) # true
puts hash.include?('c') # false
include?()
方法其实是 Ruby 中一个很常用的方法,这里介绍一些其他关于 include?()
的用法和技巧。
include?()
可以检查数组中是否包含多个元素。指定多个元素时,只要有一个元素在数组中就会返回 true
。
arr = [1, 2, 3]
puts arr.include?(2, 4) # true
puts arr.include?(4, 5) # false
include?()
可以检查字符串中是否包含任意一个字符。这一点和字符串的 index()
方法不同。如果要检查字符串中是否包含多个字符,可以使用正则表达式。
str = 'hello world'
puts str.include?('h', 'w') # true
puts str.include?(/[123]/) # false
include?()
方法的底层实现其实是调用了 Enumerable
模块中的 any?()
方法。如果需要检查的对象没有实现 Enumerable
接口,可以手动实现一个。
class MyObject
def initialize(elements)
@elements = elements
end
def include?(element)
@elements.any? { |e| e == element }
end
end
obj = MyObject.new([1, 2, 3])
puts obj.include?(2) # true