专栏首页PHP 开发ASP中的数字和字符比较

ASP中的数字和字符比较

昨晚和老迷聊天聊到很晚,说到一个把字符串转换为数字进行比较的问题。老迷说他喜欢保持字符串本身的类型,进行字符串的匹配比较,而不喜欢把字符串强制转换为数字进行比较。 一开始我不太明白这到底有什么区别,比如

a = "1"
If a = 1 Then
    'Something
End If

a = "1"
If a = "1" Then
     'Something
End If

在VB中,变量的数据类型默认是 Variant,在必要的时候自动转换,例如上例第一种,由于表达式右边是数字,因此系统会自动将字符串变量a转换为数字类型,然后进行数字的比较。而第二种则没有转换类型这个过程。 这个从代码上看没有任何区别的比较过程,在执行时却差着一个步骤。这就是老迷关于他为什么更愿意保持字符串变量的字符串类型来进行比较的原因。

最简单的运用就是用户登录时,比如有个是否保存 cookies 的选项。通常是用下拉选择或者单选按钮,表单数据经过ASP程序读取之后,Request.Form("cookies") 的值默认情况下是字符串类型的。我们往往是把它当成数字来用,有时候我们还习惯用 a = Cint(Request.Form("cookies")) 的方式在读取时进行转换,也或者不做转换,直接用 If a = 1 来判断。 实际上不管用哪种方法,都离不开一个转换的过程,而且为了避免 Cint 函数出错,我们往往还需要在前面增加一个 IsNumeric 的验证,这样一来,多出来的就不只是一个步骤了。 而如果我们直接把 Request.Form("cookies") 作为字符串考虑,我们只需要一行代码即可:

If Request.Form("cookies") <> "" and a = "1" Then

就同时完成了数据有效性验证和比较。 这个很小的细节,在实际编程中用到的地方非常多,每个地方都多两个步骤,那的确在性能上就是比较低大的浪费了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Nginx泛解析到子目录,自动判断有无public目录

    在配置本地 PHP 开发环境时,除非是在 Windows 下,否则我都是偏向于 Nginx + PHP-FPM, 即使 Mac 下已经有了自带的 Apache+...

    小李刀刀
  • dateDiff在Objective-C中的实现

    在学习iOS App开发中遇到需要计算时间差并格式化输出的需求,没有现成的方法,需要结合NSCalendar和NSDateComponents来实现。所以干脆把...

    小李刀刀
  • CentOS 7 开启 BBR 加速

    Google 在 2016年9月份开源了他们的优化网络拥堵算法BBR,最新版本的 Linux内核(4.9-rc8)中已经集成了该算法。 对于TCP单边加速,并非...

    小李刀刀
  • 【二叉树打卡1】二叉搜索树的后序遍历序列

    输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。

    帅地
  • 小程序有更新:新增位置、重力和网络三种调试

    知晓君
  • Nodejs Stream pipe 的使用与实现原理分析

    通过流我们可以将一大块数据拆分为一小部分一点一点的流动起来,而无需一次性全部读入,在 Linux 下我们可以通过 | 符号实现,类似的在 Nodejs 的 St...

    五月君
  • win10 系统Docker搭建设备共享平台stf(三)

    1.首先下载一个注册表文件,复制这段内容后打开百度网盘手机App,操作更方便哦这个下载完以后,点击打开,

    厦门-安仔
  • React技术栈实现XXX点评App-Demo

    https://github.com/Nealyang/React-Fullstack-Dianping-Demo/blob/master/record/pla...

    Nealyang
  • 字典三级菜单之逐级添加内容

    py3study
  • python常用标准库

    -------------------系统内建函数------------------- 1、字符串 str='这是一个字符串数据测试数据'对应 str[0]:...

    py3study

扫码关注云+社区

领取腾讯云代金券