本文简要介绍ruby语言中 Set类
的用法。
这个库提供了 Set
类,它处理无重复的无序值的集合。它是 Array 的直观 inter-operation 设施和 Hash 的快速查找的混合体。
为方便起见,将方法to_set
添加到 Enumerable
。
Set
实现无重复值的无序值集合。这是 Array 的直观 inter-operation 设施和 Hash 的快速查找的混合体。
Set
易于与 Enumerable
对象一起使用(实现 each
)。除了集合和数组之外,大多数初始化方法和二元运算符都接受通用 Enumerable
对象。可以使用to_set
方法将 Enumerable
对象转换为 Set
。
-
元素的相等性根据
Object#eql?
和Object#hash
确定。使用Set#compare_by_identity
使集合按其身份比较其元素。 -
Set
假设每个元素的标识在存储时不会改变。修改集合中的元素会使集合处于不可靠状态。 -
当要存储字符串时,将存储该字符串的冻结副本,除非原始字符串已被冻结。
比较
比较运算符 <
、 >
、 <=
和 >=
被实现为 {proper_,}{subset?,superset?} 方法的简写。 <=>
运算符反映了这个顺序,或者为都具有不同元素的集合返回 nil
(例如 {x, y}
与 {x, z}
)。
示例
require 'set'
s1 = Set[1, 2] #=> #<Set: {1, 2}>
s2 = [1, 2].to_set #=> #<Set: {1, 2}>
s1 == s2 #=> true
s1.add("foo") #=> #<Set: {1, 2, "foo"}>
s1.merge([2, 6]) #=> #<Set: {1, 2, "foo", 6}>
s1.subset?(s2) #=> false
s2.subset?(s1) #=> true
接触
-
Akinori MUSHA <knu@iDaemons.org>(当前维护者)
相关用法
- Ruby Set flatten()用法及代码示例
- Ruby Set.replace用法及代码示例
- Ruby Set intersection()用法及代码示例
- Ruby Set.==用法及代码示例
- Ruby Set.disjoint?用法及代码示例
- Ruby Set size()用法及代码示例
- Ruby Set compare_by_identity?用法及代码示例
- Ruby Set merge()用法及代码示例
- Ruby Set.classify用法及代码示例
- Ruby Set add?用法及代码示例
- Ruby Set compare_by_identity()用法及代码示例
- Ruby Set flatten!()用法及代码示例
- Ruby Set divide()用法及代码示例
- Ruby Set replace()用法及代码示例
- Ruby Set.[]用法及代码示例
- Ruby Set.===用法及代码示例
- Ruby Set include?()用法及代码示例
- Ruby Set subtract()用法及代码示例
- Ruby Set member?()用法及代码示例
- Ruby Set intersect?()用法及代码示例
- Ruby Set proper_subset?()用法及代码示例
- Ruby Set difference()用法及代码示例
- Ruby Set.-用法及代码示例
- Ruby Set.to_a用法及代码示例
- Ruby Set.add?用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Set类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。