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