Delphi中的Type
聲明:
1. type Name = Existing type;2. type Name = type Existing type;
3. type Name = (EnumValue1 [=value], EnumValue2 [=value] ...);
4. type Name = Expression1..Expression2;
5. type Name = ^Existing type;
6. type Name = array[...] of Existing type;
7. type Name = class ... end;
8. type Name = class of Existing class
9. type Name = dispinterface ... end;
10. type Name = file of Existing type;
11. type Name = function ...;
12. type Name = interface ... end;
13. type Name = object ... end;
14. type Name = procedure ...;
15. type Name = record ... end;
16. type Name = set of Ordinal values
描述:Type關鍵詞是Delphi的基礎部分,不像其它語言,它允許創建變量和過程的新類型(種類)。這些新的類型可以被引用,就像它是語言的一部分一樣。
比如:Type TCourtCards = (Ace,Jack,Queen,King);
允許定義一個這種“type”的新變量:var Card:TCourtCard; Card:=Queen;
一般都在類型名字的前綴加“T”,這是一種有用的約定。
1.type Name = Existing type
參考一個現有的類型,比如用新的名字來替代string。
2.type Name = type Existing type
這個與上面的效果一樣,但是它確保在運行時,這個類型的變量被識別為它的新類型名稱,而不是原先已存在的類型名稱。
3.type Name = (EnumValue1,EnumValue2…)
定義一個枚舉類型,包含了值EnumValue1,EnumValue2等等。它是用戶自定義的名字,列舉出所有有可能的值。這些值在你的程序中必 須是唯一的,一旦在類型中定義了它,只可通過兩種方法引用:指定或引用一個這種類型的變量;和用Ord關鍵詞取得序數作為數字值。見例子。
注:這些枚舉元素在定義的時候,它的位置值為0,1,2,等等,除非這個值用“=value”覆寫。如:
Type Days = (Monday = 1,Tuesday,Wed…);
這里,Monday位置值被設為1,Tuesday為2,Wednesday 為3,依次類推。
4.Type Name = Expression1..Expression2
這里是一個完整的整數或字符范圍,從Expression1表達式到Expression2表達式。表達式1和2可以是計算結結果為整數或字符的公式,或僅是整數或字符常量。如:Type TAlphabet =’A’..’z';通常用于定義字符范圍,從大寫A到小寫z。
5.type Name = ^Existing type
‘^’符號是指向現有類型的指針。它經常用于導航記錄Record類型。
6.type Name = array[…] of existing type
一個結構類型,用一個新的類型封裝了某類型的數組。
7.type Name = class…end
用于定義一個新類的結構,詳見Class關鍵詞。
8.type Name = class of existing class
提供一個meta-class定義,詳見Class關鍵詞。
9.type Name = dispinterface … end
一個分派接口(dispatch interface)類型,詳見Dispinterface關鍵詞。
10.type Name = file of Existing type
定義一個指向文件的類型,這個文件包含了給定類型的記錄。(默認地,文件包含二進制數據)
11.type Name = function …
定義一個函數當作類型,允許這個函數被定義作為參數用于子程序。
12.type Name = interface … end
用于定義接口的結構。詳見Interface關鍵詞。
13.type Name = object … end
相當于類定義,已過時淘汰。
14.type Name = procedure …
定義一個過程當作類型,允許這個過程被定義作為參數用于子程序。
15.type Name = record … end
定義記錄類型,在給定的名稱下封裝數據結構。詳見Record關鍵詞。
16.type Name = set of Ordinal values
定義有序數的子界。定義了一個整數或字符的范圍。詳見Set關鍵詞。
{舉一些type例子}
Type
TString1 = string; // 1. type Name = Existing type
TString2 = type string; // 2. type Name = type Existing type
TTemp = (Hot, Warm, Cold); // 3. type Name = (Enum1, Enum2 ...)
TExpr = 5*2 .. 6*3; // 4. type Name = Expr1 .. Expr2
// 5. See the Pointer keyword
TArray = array[1..3] of byte; //6. type Name = array[...] of type
// 7. 見TFrom1類定義
// 8. 詳見 Class 關鍵詞
// 9. 詳見 Dispinterface 關鍵詞
// 10. 詳見 File 關鍵詞
// 11. 詳見 Function 關鍵詞
// 12. 詳見 Interface 關鍵詞
// 13. 淘汰不用了
// 14. 詳見 Procedure 關鍵詞
TRecord = record // 15. type Name = record .. end;
header : string;
value : Integer;
end;
TLetters = set of 'A'..'z'; // 16. type Name = set of Ordinals
var
// 用上面的類型定義變量
firstName : TString1;
lastName : TString2;
temperature : TTemp;
expression : TExpr;
myArray : TArray;
myRecord : TRecord;
letters : TLetters;
begin
// 為變量賦值
firstName := 'Neil';
lastName := 'Moffatt';
temperature := Cold;
expression := 10;
myArray[1] := 5;
myRecord.header := 'data file';
letters := ['F'..'Q'];
end;?
總結
以上是生活随笔為你收集整理的Delphi中的Type的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个词法分析器源码的剖析
- 下一篇: 调整的飞秋官网幅度还非常的大