集合
集合类型是一个集合的数学概念。集合的基类型只能是序数类型。原因是集合是作为高性能的位向量实现。
集合可以通过集合构造器来构造:{}是空集合。空集合与任何具体的集合类型是类型兼容的。构造器也可以用于包含元素(和元素的范围)。
type
CharSet = set[char]
var
x: CharSet
x = {'a'..'z', '0'..'9'} # This constructs a set that contains the
# letters from 'a' to 'z' and the digits
# from '0' to '9'
下面是集合类型支持的操作:
操作 |
含义 |
A + B |
连接两个集合 |
A * B |
两个集合的交集 |
A - B |
两个集合的差集 |
A == B |
集合相等 |
A <= B |
子集关系(A是B的子集或者与B相等) |
A < B |
强子集关系(A是B的一个真正的子集) |
e in A |
(集合成员) (A contains element e) |
e notin A |
A不包含元素e |
contains(A, e) |
A包含元素e |
card(A) |
A集合的势(A中包含的元素个数) |
incl(A, elem) |
A中添加一个元素 |
excl(A, elem) |
A中减少一个元素 |
集合通常用于在一个过程中定义一个flags类型。这是一个非常清楚(和类型安全)解决方法相比于仅仅定义整形常量。