- 帕斯卡教程
- 帕斯卡 - 主页
- 帕斯卡 - 概述
- 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