Mid() vs Mid$()

后端 未结 3 1352
谎友^
谎友^ 2021-01-02 00:54

According to the documentation in VB6 the Mid() function returns a variant, but Mid$() returns a string and apparently this is more efficient.

My questions are :

相关标签:
3条回答
  • 2021-01-02 01:21

    Honestly, I think it's negligible.

    Maybe you can try something like this. Download the "High-Performance Timer Object" from http://ccrp.mvps.org/, do a long loop (1.000.000 iterations or so) of string operations, and measure the run time difference. By "operations" I mean: Concatenation of Variants as opposed to concatenation of Strings. Mid() and Mid$() will very likely perform the same. OTOH - you can test that as well.

    If you did, I'd be interested if you posted the results.

    0 讨论(0)
  • 2021-01-02 01:27

    Whilst performance between them is negligible its not really a differentiator as to which to use anyway.

    There can be some nuances when using a variant when a strong type is required. For example what happens when you pass a variant to a parameter expecting a ByRef string? Nothing bad but something a little more than passing an address happens.

    Hence if you know that you want to work with strings then go ahead and use the $ versions of these functions the behaviour of them and their use in other expressions is simpler and better understood. If you know you need a variant and your inputs are variants then sure use the non $ versions.

    0 讨论(0)
  • 2021-01-02 01:30

    Isn't worth worrying about. It's a remnant from Microsoft Basic of 15-20 years ago when a fast processor was orders of magnitude slower than anything today.

    It has a certain esthetic appeal to use Mid$ rather than let VB determine what your datatypes are, though. And if you have any loops that are executing it, say, thousands of tiems a second, then your curiosity factor might increase. Otherwise, neh.

    Here's a link to someone who measured the difference. Mid$ was about 2.5 times as fast as Mid. Including tests going back to VB4.

    0 讨论(0)
提交回复
热议问题