b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

pascal 视频教程_pascal和basic_pascal选择排序(30)

电脑杂谈  发布时间:2016-12-28 07:02:37  来源:网络整理

type typeName = (val1, ..., valn)

这里,typeName和每个值是有效的标志符。例如,下面的声明

type Suit = (Club, Diamond, Heart, Spade);

定义了一个叫做Suit的枚举类型,它的可能值包括Club、Diamond、Heart和Spade。这里,

返回0,Ord(Diamond)返回1,依此类推。

当定义一个枚举类型时,也就同时定义了它的每一个值:它是类型typeName的一个常量。

范围内你使用val标志符用作其它目的,将产生命名冲突。例如,假设你声明类型:

type TSound = (Click, Clack, Clock);

不幸的是,Click也是TControl(以及它的子类)的一个方法名,所以,如果在程序中创建了如下的事件句柄:

procedure TForm1.DBGrid1Enter(Sender: TObject);

var Thing: TSound;

begin

...

Thing := Click;

...

end;

将导致编译错误:编译器会认为这个过程中的click是TForm的Click方法。此时,你可以使用限定符来完成工作,这样,如果TSound是在MyUnit单元声明的,你可以使用

Thing := MyUnit.Click;

但一种更好的方式是使用不和其它标志符产生冲突的名字。例如:

type

TSound = (tsClick, tsClack, tsClock);

TMyColor = (mcRed, mcBlue, mcGreen, mcYellow, mcOrange);

Answer = (ansYes, ansNo, ansMaybe);

在声明变量时,你可以直接使用(val1,…,valn)结构,它就像一个类型名称:

var MyCard: (Club, Diamond, Heart, Spade);

但以这种方式声明MyCard,你就不能在同一范围,用这些常量标志符来声明其它变量了。这样var Card1: (Club, Diamond, Heart, Spade);

var Card2: (Club, Diamond, Heart, Spade);

会产生编译错误,但是 Ord(Club)

- 47 - 如果在同一个

Data types, variables and constants

var Card1, Card2: (Club, Diamond, Heart, Spade);

会很好地编译,下面的也是

type Suit = (Club, Diamond, Heart, Spade);

var

Card1: Suit;

Card2: Suit;

Enumerated types with explicitly assigned ordinality(指定序数值的枚举类型)

默认情况下,枚举类型的序数从0开始,并按它们的标志符在声明时列出的顺序排列。在声明时,通过给它的某些或所有值明确地指定一个序数,可以覆盖默认地序数。要给一个值赋序数,使用= constantExpression紧跟在它的标志符之后,这里,constantExpression为一个整数类型的常量表达式。比如

type Size = (Small = 5, Medium = 10, Large = Small + Medium);

定义了一个叫做Size的类型,它的可能值包括Small、Medium和Large,这里Ord(Small)返回5,Ord(Medium)返回10,Ord(Large)返回15。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-30.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...