Delphi学习笔记(二)之类型转换

来源:互联网 发布:python与量化投资 编辑:程序博客网 时间:2024/06/05 03:25

Delphi中对类型的兼容和转换作了严格的限制,虽然上手起来不太方便,但是容易使人养成良好的编码习惯,下面就Delphi的类型转换中需要注意的点进行说明。

类型兼容

当A,B两种数据类型满足一下条件时,可以将B类型的值赋值给A类型的变量:
  1. A,B均为实型;
  2. A,B均为整型;
  3. B是A的子界类型;
  4. A,B是同一类型的子界类型;(注意溢出问题)
  5. 均为集合类型,且基类也兼容;
  6. 字符串 := 字符串、packed-string、Char;
  7. 有序类型与Variant类型;
  8. A,B均为类、类引用、类接口,B继承于A;
  9. A是PChar,B字符数组(0下标);
  10. Pointer与其他类型的指针;
  11. 同一类型的指针(开启编译器指示字{$T+});
  12. 都是过程/函数类型,且返回类型,参数个数、位置、类型相同;
  13. A是接口类型,B是其的一个实现;

    注意:不能包含文件类型;接口类型可以赋值给Variant,反之则不行;整型可以赋值给实型,反之不行。

类型转换

    类型标识符(表达式);

值转换:表达式和类型标识符只能是指针类型或者有序类型,并且需要注意溢出;

    有序类型包括:整型、字符型、布尔型、枚举型、子界类型,不包括实型;

变量转换:目标类型所占内存不小于源类型;

原创粉丝点击