- Pascal 教程
- Pascal — 主页
- Pascal — 概述
- Pascal — 环境设置
- Pascal — 程序结构
- Pascal — 基本语法
- Pascal — 数据类型
- Pascal — 变量类型
- Pascal — 常量
- Pascal — 运算符
- Pascal — 决策
- Pascal — 循环
- Pascal — 函数
- Pascal — 过程
- Pascal — 变量作用域
- Pascal — 字符串
- Pascal — 布尔值
- Pascal — 数组
- Pascal — 指针
- Pascal — 记录
- Pascal — 变体
- Pascal — 集合
- Pascal — 文件处理
- Pascal — 内存
- Pascal — 单元
- Pascal — 日期和时间
- Pascal — 对象
- Pascal — 类
- Pascal 有用资源
- Pascal — 快速指南
- Pascal — 有用资源
- Pascal — 讨论
Pascal — 变体
Pascal 支持一种名为变体的独特存储类型。你可以在变体变量中分配任何类型的简单值。存储在变体中的值类型仅在运行时确定。几乎任何简单类型都可以分配给变体:序数类型、字符串类型、int64 类型。
集合、记录、数组、文件、对象和类等结构化类型与变体不兼容。你还可以分配一个指向变体的指针。
Free Pascal 支持变体。
声明变体
你可以使用 var 关键字声明变体类型,就像声明其他类型一样。声明变体类型的语法为 −
var v: variant;
现在,此变体变量 v 可以分配给几乎所有简单类型,包括枚举类型,反之亦然。
type color = (red, black, white); var v : variant; i : integer; b : byte; w : word; q : int64; e : extended; d : double; en : color; as : ansistring; ws : widestring; begin v := i; v := b; v := w; v := q; v := e; v := en; v := d: v := as; v := ws; end;
示例
以下示例将演示概念 −
Program exVariant;
uses variants;
type
color = (red, black, white);
var
v : variant;
i : integer;
r: real;
c : color;
as : ansistring;
begin
i := 100;
v:= i;
writeln('Variant as Integer: ', v);
r:= 234.345;
v:= r;
writeln('Variant as real: ', v);
c := red;
v := c;
writeln('Variant as Enumerated data: ', v);
as:= ' I am an AnsiString';
v:= as;
writeln('Variant as AnsiString: ', v);
end.
编译并执行以上代码时,它将产生以下结果 −
Variant as Integer: 100 Variant as real: 234.345 Variant as Enumerated data: 0 Variant as AnsiString: I am an AnsiString
广告