字符串函数前言继续说VB/VBA/VBS的内置函数。
  在前面的《VB/VBA字符串》一文中,介绍了字符串的内存结构。
  但是,VB的内置函数中绝大部分的返回值和参数都是Variant,其中也包括字符串函数。
  在《让VB/VBA的语句提升10倍以上的性能!》一文中,通过小小的示例便可看出,Variant对VB/VBA/VBS性能的制约非常严重。
  Variant究竟有何不可告人之处呢?《Variant构造智能指针,撒欢了玩》一文剖析了它的结构。
  其庞大的身躯,不仅更占内存,而且在使用中需要频繁的转换,所以BtOfficer在《有哪些提高VB/VBA代码运行效率的小技巧?》中提示大家,在掌握VB/VBA指针之前,应尽可能避免使用Variant类型。
  其中对于字符串函数,也建议大家使用带$版本的。
  带$版的字符串函数,本质上就是在避免Variant类型的使用。
  正好有网友询问是否所有字符串函数都有$版本,那么本篇就围绕以下问题做一个系统的梳理:1、为何$字符串函数能够提高性能?2、都有哪些$版字符串函数?一、$版字符串函数是否会提高性能?测试不带$的Left函数测试带$的Left函数为了说明问题,通过1个Demo来测试下,为说明问题连续测3次,详见上图。
  从IDE(PCODE)测试结果来看,带$的字符串函数的确要比不带的要高效那么一丢丢。
  这说明多带个$符,的确能提升性能。
  所以,现在看到很多VB黄金时代的很多源码里,字符串函数后都带$符号。
  二、为何字符串函数带$能提升性能呢?为解开这个问题,就要回到字符串函数究竟是如何实现的层面上来。
  考虑到贴汇编码并适合广大VB/VBA朋友,这里就直接说结论。
  所有内置函数几乎都首先调用带Var尾缀的运行库函数。
  字符串函数而言,这个运行库函数根据类型进行一番转换后,继续调用带Bstr后缀的运行库函数。
  后面这个运行库函数则会到OLEATO32中再调用相应的BSTR相关的函数。
  而带$的字符串函数,则会直接调用带Bstr后缀的运行库函数,少了一层封装。
  所以,带$的字符串函数会比不带的,要快,但也只能快那么一丢丢。
  三、$为何这么神奇?其实,VB/VBA/VBS的内置函数中,并没有所谓的$版函数,从最前面的总目录图就可以看出来。
  那为何字符串函数可以加$呢?这就要从类型修饰符说起了,笔者早在《VB/VBA中的类型修饰符》一文中就就集中讲过类型修饰符,而$恰恰就是String类型的修饰符。
  类型修饰符可以用于变量类型的声明,比如DimuStr$。
  而函数名,又是特殊的变量(可参考BtOfficer早前对函数结构相关的文章),所以类型修饰符是可以直接修饰函数名的。
  当类型修饰符在修饰变量时,就可以直接告诉编译器或解释器使用具体的类型,而不必进入到Variant进行判断,从而省去一层包装的代码。
  这便是$版字符串函数能够提高性能的根本原因。
  不仅字符串如此,在遇到其他Variant类型的返回值和参数,均可以使用类型修饰符来减少不必要的类型转换,来达到避免Variant的目的。
  四、到底有哪些$版函数?其实,有了前面的结论,这个问题也就很清楚了。
  凡是返回值为Variant的字符串,均可以用$修饰符。
  为了更方便各位观摩,BtOfficer也给大家列出一个清单:LeftBRightBLcaseTrimLtrimRtrimSpaceUcaseHexOctStringDateTimeLeftRightMidBMidCurDirErrorEnvironCommand以上函数,均有相应的$版。
  欢迎关注BtOfficer(收藏、点赞、关注+转发),更多精彩仍在继续哦(专栏文章将更系统,更全面),有严肃而枯燥的技术,也有轻松的唠嗑,更有现成工具等你来拿,期待你的加入!

  • 记载
品色堂成人小说 2023-05-27 17:42:26

字符串函数前言继续说VB/VBA/VBS的内置函数。
  在前面的《VB/VBA字符串》一文中,介绍了字符串的内存结构。
  但是,VB的内置函数中绝大部分的返回值和参数都是Variant,其中也包括字符串函数。
  在《让VB/VBA的语句提升10倍以上的性能!》一文中,通过小小的示例便可看出,Variant对VB/VBA/VBS性能的制约非常严重。
  Variant究竟有何不可告人之处呢?《Variant构造智能指针,撒欢了玩》一文剖析了它的结构。
  其庞大的身躯,不仅更占内存,而且在使用中需要频繁的转换,所以BtOfficer在《有哪些提高VB/VBA代码运行效率的小技巧?》中提示大家,在掌握VB/VBA指针之前,应尽可能避免使用Variant类型。
  其中对于字符串函数,也建议大家使用带$版本的。
  带$版的字符串函数,本质上就是在避免Variant类型的使用。
  正好有网友询问是否所有字符串函数都有$版本,那么本篇就围绕以下问题做一个系统的梳理:1、为何$字符串函数能够提高性能?2、都有哪些$版字符串函数?一、$版字符串函数是否会提高性能?测试不带$的Left函数测试带$的Left函数为了说明问题,通过1个Demo来测试下,为说明问题连续测3次,详见上图。
  从IDE(PCODE)测试结果来看,带$的字符串函数的确要比不带的要高效那么一丢丢。
  这说明多带个$符,的确能提升性能。
  所以,现在看到很多VB黄金时代的很多源码里,字符串函数后都带$符号。
  二、为何字符串函数带$能提升性能呢?为解开这个问题,就要回到字符串函数究竟是如何实现的层面上来。
  考虑到贴汇编码并适合广大VB/VBA朋友,这里就直接说结论。
  所有内置函数几乎都首先调用带Var尾缀的运行库函数。
  字符串函数而言,这个运行库函数根据类型进行一番转换后,继续调用带Bstr后缀的运行库函数。
  后面这个运行库函数则会到OLEATO32中再调用相应的BSTR相关的函数。
  而带$的字符串函数,则会直接调用带Bstr后缀的运行库函数,少了一层封装。
  所以,带$的字符串函数会比不带的,要快,但也只能快那么一丢丢。
  三、$为何这么神奇?其实,VB/VBA/VBS的内置函数中,并没有所谓的$版函数,从最前面的总目录图就可以看出来。
  那为何字符串函数可以加$呢?这就要从类型修饰符说起了,笔者早在《VB/VBA中的类型修饰符》一文中就就集中讲过类型修饰符,而$恰恰就是String类型的修饰符。
  类型修饰符可以用于变量类型的声明,比如DimuStr$。
  而函数名,又是特殊的变量(可参考BtOfficer早前对函数结构相关的文章),所以类型修饰符是可以直接修饰函数名的。
  当类型修饰符在修饰变量时,就可以直接告诉编译器或解释器使用具体的类型,而不必进入到Variant进行判断,从而省去一层包装的代码。
  这便是$版字符串函数能够提高性能的根本原因。
  不仅字符串如此,在遇到其他Variant类型的返回值和参数,均可以使用类型修饰符来减少不必要的类型转换,来达到避免Variant的目的。
  四、到底有哪些$版函数?其实,有了前面的结论,这个问题也就很清楚了。
  凡是返回值为Variant的字符串,均可以用$修饰符。
  为了更方便各位观摩,BtOfficer也给大家列出一个清单:LeftBRightBLcaseTrimLtrimRtrimSpaceUcaseHexOctStringDateTimeLeftRightMidBMidCurDirErrorEnvironCommand以上函数,均有相应的$版。
  欢迎关注BtOfficer(收藏、点赞、关注+转发),更多精彩仍在继续哦(专栏文章将更系统,更全面),有严肃而枯燥的技术,也有轻松的唠嗑,更有现成工具等你来拿,期待你的加入!

<b dropzone="q1sbh8lz"></b>
<tt id="oyOR5cw7f0jh4"></tt>

            品色堂成人小说《品色堂成人小说》由来

            编辑
            1.品色堂成人小说现在夏天解开了天龙仙铠的秘密,而且这次解开天龙仙铠的秘密,还是真正的解开。
                   2.“恩,对了,他身边跟着的那两个人不要动,那两个女人不错,灭...
                   3.看到夏天的时候,那些人怒气冲天:“卡奴,你别以为你在A区出名就可以为所欲为了,这里是第二层,这里除了A区之外还有B区,C区等等...
                   4.寂静!现场突然安静了下来,猫妖和铥铥完全不说话了。
                   5.“恩!”夏天明白了,火甲帝和天阵也是刚刚知道仙格的事情:“老头...

            品色堂成人小说《品色堂成人小说》起源

            <b dropzone="IlDCSkEzL"><sub id="wBpAMr5zk"></sub></b>
                  1.品色堂成人小说这是一场令人愉快的复仇之战。开始一场激烈的战斗,带给你更多血腥的恶魔决斗。
                         2.在一天结束的时候,你可以获得各种各样的资源,让你的力量更强大,这样你就可以住在这里。
                         3.这里是力量探索与冒险,技能与力量诠释,创造不同的人类羁绊故事,开启神仙的契约。"
                         4.邀请好友可以来闯关冒险,还有很多的法术,可以提高您的攻击力
                         5.没有问题能阻止你交付食物使用道具来解决陷阱,找到最好的方式给顾客送食物。
                         6.玩家可以自由的摆放六边形的位置,合理的搭配三种一样的颜色就能消除;
                  参考资料