除了Set保持唯一元素而Array可以保留重复元素外,在Ruby中
Set
和Array
有什么区别?它们非常不同。
a [3]
引用数组中的第四个对象。[1,'apple',String,1,:banana]
(这将创建并初始化新的数组)。Set
不是核心的一部分,而是标准库的一部分,因此需要 require 'set'
。Set.new
创建。Set[]
(例如: Set [1,2,3]
)。对我来说,主要区别在于Set
是以哈希表实现的,因此您可以对元素进行O(1)
成员测试。
另一个重要的区别在于include?
方法的实现:数组基于==
方法比较成员,而集合使用eql?
方法。
eql?
和==
不是同义词。 - Confusion