为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言常见问题及笔记 正文

深入了解易语言中的变体型

三叶资源网 2018-01-28 19:27:06 易语言常见问题及笔记 7846 ℃ 49 评论

易语言中的变体型在我们不使用COM对象的时候似乎很少用到,在其说明中也是这么说的:提供对COM接口中Variant数据类型(即VB中的Any数据类型)的支持,它可以容纳文本、数值、逻辑值、日期时间值、COM对象型数据类型,还可以容纳这些数据类型以及“变体型”数据类型本身的数组。那么他的结构是什么样的?可以容纳这么多的数据类型?百度之后找到了答案。

变体型的数据结构和VARIANT是一样的,其中包括了,4个短整数型结构和一个长整数型结构:

数据类型:短整数型

保留1:短整数型

保留2:短整数型

保留3:短整数型

数据内容:长整数型

3个保留参数的作用应该是为了以后方便升级,具体没有深究。

经过查看数据类型部分的内容,和.取类型 ()得到的结构对比,发现他们并不一样。

比如给变体型赋值一个文本数组,直接读取变体型指针指向的前两个字节,得到的结果是8120,而.取类型 ()得到的结果是8,他们之间有什么关系?带着疑问再次百度。在vb脚本的VarType()方法中找到了答案。一下是他的说明:

VarType

  语法

  VarType(varname)

  varname 参数可以是任何变量。

  返回值

  VarType 函数返回下列值:

  常数         值         描述

  vbEmpty         0         Empty(未初始化)

  vbNull         1         Null(无有效数据)

  vbInteger         2         整数

  vbLong         3         长整数

  vbSingle         4         单精度浮点数

  vbDouble         5         双精度浮点数

  vbCurrency         6         货币

  vbDate         7         日期

  vbString         8         字符串

  vbObject         9         Automation 对象

  vbError         10         错误

  vbBoolean         11         Boolean

  vbVariant         12         Variant(只和变量数组一起使用)

  vbDataObject         13         数据访问对象

  vbByte         17         字节

  vbArray         8192         数组

  注意 这些常数是由 VBScript 指定的。所以,这些名称可在代码中随处使用,以代替实际值。

  说明

  VarType 函数从不通过自己返回 Array 的值。它总是要添加一些其他值来指示一个具体类型的数组。当 Variant 的值被添加到 Array 的值中以表明 VarType 函数的参数是一个数组时,它才被返回。例如,对一个整数数组的返回值是 2 + 8192 的计算结果,或 8194。如果一个对象有默认属性,则 VarType(object) 返回对象默认属性的类型。

8200-8192刚好等于vbString 的值,也是易中变体类型定义的文本数组的值 :8

看来易是根据自身的数据类型对他进行二次分类,然后把分类的结果告诉了我们。目的自然是要简化我们的操作,一个数值型代表了许多的类型。但是避开性能不谈,也让我们再次的陷入孤岛。不过我们应该已经习惯了,易总是恃才自傲,重新定制一些大佬们制定的规则。扯的有些远了。

知道了原理,我们就可以更方便的来使用变体型,

例如动态的使用变体型,可以先保存他的16个字节的内容,然后吧变体型清零,防止里边的数据在子程序中被销毁。

Tags:

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有49位网友发表了看法:

  • 三叶网

    三叶网  评论于 [2019-02-27 11:26:11]  回复

    易语言变体型

  • 易飞扬

    易飞扬  评论于 [2019-04-29 12:45:45]  回复

    取变体型数据区指针

  • 资源网

    资源网  评论于 [2019-05-28 17:33:37]  回复

    易语言 变长参数

  • eyuyan

    eyuyan  评论于 [2019-06-01 17:14:02]  回复

    易语言变体型数据转换

  • 三叶网

    三叶网  评论于 [2019-11-02 22:58:10]  回复

    易语言+变体型

  • 易语言

    易语言  评论于 [2020-03-28 13:39:58]  回复

    易语言+变体型数组

  • 易语言

    易语言  评论于 [2020-04-17 20:29:29]  回复

    易语言+查看变体型

  • 易语言

    易语言  评论于 [2020-05-08 22:58:04]  回复

    易语言变体型路径格式

  • 易语言

    易语言  评论于 [2020-05-09 13:58:47]  回复

    易语言变体型数据

  • 易语言

    易语言  评论于 [2020-06-06 01:01:39]  回复

    易语言变体型

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
阿里云oss分片上传MYSQL数据库Java支持库多线程进度复制文件QQ群引流TGP登录协议ExcelExUI图标列表框账号管理系统折线图源码UDPPOST例程fiddler验证码平台机构开心宝贝json是用来干嘛的YY号取UID列表框酷Q智能机器人源码
最新评论