集合

集合类型

集合类型的声明

  • 集合是若干个值的集合
  • 集合只能是有序类型的集合
  • 集合任何一个成员在集合中是唯一的,不会出现两个一样值的成员
  • 集合中的成员是无序的
  • 集合中的所有成员的类型是一样的有序类型
  • 集合最多只能有 256 个成员

声明集合类型的方式如下:

1
2
3
4
type
TMySet1 = set of byte; // byte 类型的集合
TMySet2 = set of 1..15; // 子界类型的集合
TMySet3 = set of (Red,Green,Blue); // 枚举类型的集合

集合类型的变量赋值

1
2
3
4
5
6
7
8
9
10
11
12
type
TMySet1 = set of byte; // byte 类型的集合
TMySet2 = set of 1..15; // 子界类型的集合
TMySet3 = set of (Red,Green,Blue); // 枚举类型的集合
var
set1: TMySet1;
set2: TMySet2;
set3: TMySet3;
//
set1 := [2, 4, 8, 16, 88]; // byte 类型
set2 := [1, 13, 15]; // 子界类型的集合赋值
set3 := [Red, Blue]; // 枚举类型的集合赋值

集合的运算

集合的运算有下面:

  • + : 集合的合并
  • - : 集合的差集
  • * : 集合的交集
  • in : 元素是否在集合中

例如:

1
2
Style := Style + [fsBold];
Style := Style + [fsBold, fsItalic] - [fsUnderline];