Basic Pascal Tutorial/Chapter 5/Enumerated types/zh CN

From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

български (bg) English (en) français (fr) 日本語 (ja) 中文(中国大陆)‎ (zh_CN)

5A - 枚举类型 (原作者: Tao Yue, 状态: 未更改)

随着计算机的不断普及,程序不仅只用于数值计算,还更广泛地用于处理非数值的数据。例如:性别、月份、星期几、颜色、单位名、学历、职业等,都不是数值数据。 在其它程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。如果能在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。也就是说,事先考虑到某一变量可能取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,这种方法称为枚举方法,用这种方法定义的类型称枚举类型。

你可以声明自己的有序数据类型,在程序中的类型定义部分,你可以这样做:

type
 数据类型标识符 = 枚举数据;


创建枚举数据的语法是:

(标识符1, 标识符2, ... 标识符n)

说明:

括号中的每一个标识符都称为枚举元素或枚举常量
定义枚举类型时列出的所有枚举元素构成了这种枚举类型的值域(取值范围),也就是说,该类型的变量所有可能的取值都列出了
枚举元素只能是标识符(除系统标识符),不能是数值常量和字符常量 

如,你想定义枚举类型存储一年中的月份,你可以这样做:

type
  MonthType = (January, February, March, April,
              May, June, July, August, September,
              October, November, December);

可以声明一个变量:

var
  Month : MonthType;

你可以赋值枚举数据给变量:

Month := January;

使用函数可获取枚举数据的序号,如,ord(January)=0,ord(December)=1。

使用限制: 虽然,枚举类型在程序内部可以使用,但它们不能被读取或写入文本文件里。

在使用时,你需要先读取转换为枚举类型后再使用。

再者,标识符中的类型(如January)不能当作另一种类型。

使用检举类型对于程序员来说,便于数据名称有意义,它可以在过程、函数中使用。

since only variables of the enumerated type can be passed in and the variable can only have one of the several enumerated values. 因为只有枚举类型的变量可以有多个枚举值。


参考

算法与程序设计:PASCAL枚举、子界类型

上一页 目录 下一页