Delphi类型区分——集合

// ####Delphi集合
// 集合(Set)——由具有某些共同特征的元素构成的一个整体,这些元素必须是有序类型,如:整型、布尔型、字符型、枚举型和子界型。

// ##集合类型的定义
// type
// <类型标识符>=set of <基类型>
// 基类型————集合中的元素必须是有序的同一种类的属性!
// Pascal规定:集合的元素个数最多为256个,所以基类型的序数必须在0-255之间!
type
Name= set of char;
Boolset= set of Boolean;
Weekday=(Sun,Mon,Tue,Wed,Thu,Fri,Sat);
Week= set of Weekday;

// ##集合常量的表示方法
// ['a','F','0'];	//元素同属于Name类型
// ['1'..'9'];
// [Sun,Mon];		//元素同属于Week类型

// ##集合变量的定义
// 1、已定义集合类型:
// var <变量名>:<集合类型标识符>;
// sn: Name;
// 2、未定义集合类型:
// var <变量名>:set of <基类型>;
// si: set of 0..255;	//元素为子界类型

// ##集合变量的赋值
// 程序中可以对集合变量赋集合常量值
// si:= [1..6,9];
// sn:= ['A'..'Z','a'..'z','0'..'9'];
// 集合变量的取值范围————包含空集在内的集合的所有子集,但是集合中的元素不能重复出现。

// ##集合类型运算
// 比较运算:
var
  A,B:set of 0..255;
begin
  A:= [1,2,6,7];
  B:= [2,3,5,6,7,9];
  A=B;		//False
  A<>B;		//True
  A<=B;		//A包含于B:False
  A>=B;		//A包含B:False
  1 in B;	//1元素在B中集合:False
  A+B;		//A并B:[1,2,3,5,6,7,9]
  A*B;		//A交B:[2,6,7]
  A-B;		//A差B:[1]
  
  A:= A+[9];
  A:= A-[6];
  Include(A,9);	//Include,Exclude比+,-更快
  Exclude(A,6);
end;

// ###集合的应用场景
// 应用于某种设置或方案允许同时选择多种选择的情况

猜你喜欢

转载自blog.csdn.net/liang08114/article/details/78804783