Enumerated types/zh CN

From Lazarus wiki
Jump to: navigation, search

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</tt>。

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

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

再者,标识符中的类型(如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枚举、子界类型

上一页 目录 下一页