集合
集合类型是一个集合的数学概念。集合的基类型只能是序数类型。原因是集合是作为高性能的位向量实现。
集合可以通过集合构造器来构造:{}是空集合。空集合与任何具体的集合类型是类型兼容的。构造器也可以用于包含元素(和元素的范围)。
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类型。这是一个非常清楚(和类型安全)解决方法相比于仅仅定义整形常量。