【Delphi 基础知识 6】常用的数据类型


Delphi 支持多种数据类型,以下是一些常见的 Delphi 数据类型及其示例:

1、基本数据类型

  • Integer(整数):

    var
      myInteger: Integer;
    begin
      myInteger := 42;
    end;
    
  • Char(字符):

    var
      myChar: Char;
    begin
      myChar := 'A';
    end;
    
  • Boolean(布尔):

    var
      myBoolean: Boolean;
    begin
      myBoolean := True;
    end;
    
  • Real(实数):

    var
      myReal: Real;
    begin
      myReal := 3.14;
    end;
    
  • String(字符串):

    var
      myString: String;
    begin
      myString := 'Hello, Delphi!';
    end;
    

2、结构化数据类型

  • Array(数组):

    	var
    	  myArray: array [0..4] of Integer;
    	begin
    	  myArray[0] := 10;
    	  myArray[1] := 20;
    	  // ...
    	end;
    
  • Record(记录):

    type
      TPerson = record
        FirstName: String;
        LastName: String;
        Age: Integer;
      end;
    
    var
      person: TPerson;
    begin
      person.FirstName := 'John';
      person.LastName := 'Doe';
      person.Age := 30;
    end;
    

3、指针类型

  • Pointer(指针):

    var
      myPointer: ^Integer;
      myValue: Integer;
    begin
      New(myPointer); // 分配内存
      myValue := 42;
      myPointer^ := myValue;
      Dispose(myPointer); // 释放内存
    end;
    

4、动态数组(Dynamic Array)

	var
	  myDynamicArray: array of Integer;
	begin
	  SetLength(myDynamicArray, 5);
	  myDynamicArray[0] := 10;
	  myDynamicArray[1] := 20;
	  // ...
	end;

5、集合类型(TList)

uses
  Classes;

var
  myList: TList<Integer>;
begin
  myList := TList<Integer>.Create;
  myList.Add(10);
  myList.Add(20);
  // ...
  myList.Free; // 释放内存
end;

6、关联数组(Associative Array)

var
  myMap: TDictionary<String, Integer>;
begin
  myMap := TDictionary<String, Integer>.Create;
  myMap.Add('One', 1);
  myMap.Add('Two', 2);
  // ...
  myMap.Free; // 释放内存
end;

7、类(Class)

type
  TPerson = class
  private
    FName: String;
    FAge: Integer;
  public
    constructor Create(Name: String; Age: Integer);
    property Name: String read FName write FName;
    property Age: Integer read FAge write FAge;
  end;

constructor TPerson.Create(Name: String; Age: Integer);
begin
  FName := Name;
  FAge := Age;
end;

var
  person: TPerson;
begin
  person := TPerson.Create('John', 30);
  // 使用 person 对象
  person.Free; // 释放对象内存
end;

8、接口(Interface)

type
  IPrintable = interface
    procedure Print;
  end;

  TMyClass = class(TInterfacedObject, IPrintable)
  public
    procedure Print;
  end;

procedure TMyClass.Print;
begin
  writeln('Printing from TMyClass');
end;

var
  myObj: IPrintable;
begin
  myObj := TMyClass.Create;
  myObj.Print;
end;

9、枚举类型(Enum)

type
  TDayOfWeek = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);

var
  today: TDayOfWeek;
begin
  today := Monday;
end;

10、集合类型(Set)

type
  TDays = set of TDayOfWeek;

var
  workingDays: TDays;
begin
  workingDays := [Monday, Tuesday, Wednesday, Thursday, Friday];
end;

11、Procedural(过程类型)

type
  TProcedure = procedure;

var
  myProcedure: TProcedure;
begin
  myProcedure := @MyFunction;
  myProcedure;
end;

procedure MyFunction;
begin
  // 实现具体的过程
end;

12、Variant 类型(Variant)

var
  myVariant: Variant;
begin
  myVariant := 10; // 可以存储不同类型的值
  myVariant := 'Hello';
end;

13、Extended 类型

var
  myExtended: Extended;
begin
  myExtended := 3.14159265358979323846;
end;
  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D-Nolan

请我喝杯咖啡吧,鼓励一下创作!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值