- 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
廣告