前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASP中的数字和字符比较

ASP中的数字和字符比较

作者头像
小李刀刀
发布2018-03-02 14:45:56
3.5K0
发布2018-03-02 14:45:56
举报
文章被收录于专栏:PHP 开发

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

代码语言:javascript
复制
a = "1"
If a = 1 Then
    'Something
End If

代码语言:javascript
复制
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") 作为字符串考虑,我们只需要一行代码即可:

代码语言:javascript
复制
If Request.Form("cookies") <> "" and a = "1" Then

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2005-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档