Delphi 2010学习笔记(14)---数据类型(变体类型)---2011-01-20
2011-01-20 16:51
405 查看
变体类型可以容纳多种不同的数据类型。
当对其进行赋值操作时,变体类型会根据所赋值的类型将其内部结构转换为能容纳这种结构的类型。
计算机中,一个变体类型的变量占16个字节。前8个字节用来存储变量类型码,后8个字节用来存储变量值,或者指向变量的指针。
Delphi提供两种方式获取变体类型变量中的数据的实际类型。
TVarData(v).Type;
VarType(v);
system单元中定义了每种类型对应的类型码,使用时可以自行查询。
变体变量定义后,初值为常量Unassinged。 而常用的预定义常量NULL在变体类型中表示未知的值或由于某种错误丢失的值。
默认的情况下,Null值小于包括Unassigned在内的任何值,但这并不是绝对的。Delphi中提供了两个预定义变量:NullEquallityRule
与NullMagnitudeRule来设定Null与其他值进行 “=”比较与“大小”比较时的行为。
变体变量与普通类型变量之间赋值兼容。
变体类型的转换:
变体变量的类型转换有两种情况:一是将变体变量转换为其他类型的变量,而是将变体变量的值转换为其他类型的值。
例子看了好久,没有看明白,等明白了两中情况后补写。
当对其进行赋值操作时,变体类型会根据所赋值的类型将其内部结构转换为能容纳这种结构的类型。
计算机中,一个变体类型的变量占16个字节。前8个字节用来存储变量类型码,后8个字节用来存储变量值,或者指向变量的指针。
Delphi提供两种方式获取变体类型变量中的数据的实际类型。
TVarData(v).Type;
VarType(v);
system单元中定义了每种类型对应的类型码,使用时可以自行查询。
变体变量定义后,初值为常量Unassinged。 而常用的预定义常量NULL在变体类型中表示未知的值或由于某种错误丢失的值。
默认的情况下,Null值小于包括Unassigned在内的任何值,但这并不是绝对的。Delphi中提供了两个预定义变量:NullEquallityRule
与NullMagnitudeRule来设定Null与其他值进行 “=”比较与“大小”比较时的行为。
变体变量与普通类型变量之间赋值兼容。
变体类型的转换:
变体变量的类型转换有两种情况:一是将变体变量转换为其他类型的变量,而是将变体变量的值转换为其他类型的值。
例子看了好久,没有看明白,等明白了两中情况后补写。
相关文章推荐
- Delphi 2010学习笔记(13)---数据类型(指针)---2011-01-20
- Delphi 2010学习笔记(15)---数据类型(变体数组)---2011-01-21
- Delphi 2010学习笔记(11)---数据类型(记录类型)---2011-01-20
- Delphi 2010学习笔记(12)---数据类型(字符串类型)---2011-01-20
- Delphi 2010学习笔记(5)---数据类型(变量)---2011-01-18
- Delphi 2010学习笔记(7)---数据类型(分类框图)---2011-01-18
- Delphi 2010学习笔记(10)---数据类型(数组)---2011-01-19
- Delphi 2010学习笔记(6)---数据类型(类型声明)---2011-01-18
- Delphi 2010学习笔记(4)---数据类型(常量)---2011-01-18
- Delphi 2010学习笔记(9)---数据类型(集合)---2011-01-19
- Delphi 2010学习笔记(8)---数据类型(顺序类型)---2011-01-19
- DELPHI学习笔记--数据类型
- Delphi的学习笔记十六——数据类型(补充)
- Delphi学习笔记 数据类型
- Delphi的学习笔记十六——数据类型
- javascript学习笔记(一):基础、输出、注释、引用、变量、数据类型
- Windows编程学习笔记 lesson1 windows编程初解、数据类型
- JavaScript学习笔记-- Boolean 数据类型
- C++学习笔记(六):复杂数据类型(string、容器和STL)
- MySQL学习笔记20150925时间数据类型以及字符集与varchar(M)M最大值关系