美文网首页
强类型语言和弱类型语言

强类型语言和弱类型语言

作者: 云溪_Cloud | 来源:发表于2016-03-08 11:59 被阅读901次

    也称为强类型定义语言。一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。java、.NET、C++、python等都是强制类型定义的。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。
    例如你有一个整数,如果不显式地进行转换,你不能将其视为一个字符串。
    与其相对应的是弱类型语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

    弱类型语言也称为弱类型定义语言。与强类型定义相反。像vb,php,javascript,python,vbscript等就属于弱类型语言.例如:在vbscript中,可以将字符串 12 和整数 3 进行连接得到字符串 123,然后可以把它看成整数 123,而不需要显式转换。
    弱类型有时显得很方便,有时却又极易出错。比如:
    var result=5+5; //two numbers
    alert(result); //outputs "10"
    var result=5+'5'; // a number and a string
    alert(result); //outputs "55"
    因此使用弱类型语言也要格外注意数据类型防止出错。

    弱类型语言vbs:
    a=1
    b=a+"1"+"a" //结果是11a,这里 a 成了字符串
    c=a+1 //结果是2 ,这里a则是数字型

    强类型语言:c#
    int a=2
    string b=a.ToString()+"1"+"a"
    int c=a+1

    看到了吗?区分大小写,需要实现申明类型外,一个重要的区别是,弱类型的语言的东西没有明显的类型,他能随着环境的不同,自动变换类型
    而强类型则没这样的规定,不同类型间的操作有严格定义,只有相同类型的变量才能操作,虽然系统也有一定的默认转换,当绝没有弱类型那么随便

    ps:弱类型代码简单,但因为变量没有确定的类型,所以容易出错!强类型代码复杂(比如:转换日期显示格式 (convert.toDatetime("2007-1-1 08:08:08")).ToString("yyyy-MM-dd"),呵呵你可以看到这种写法相当麻烦),但因为有严格定义所以不容易出错

    相关文章

      网友评论

          本文标题:强类型语言和弱类型语言

          本文链接:https://www.haomeiwen.com/subject/vfdzkttx.html