计算机基础 - 强类型与弱类型语言,动态与静态语言

强类型与弱类型

如果一门语言很少隐式转换类型,说明它是强类型语言;如果经常这么做,说明它是弱类型语言。Java、C++和Python是强类型语言。PHP、JavaScript和Perl是弱类型语言。

概念参照Google等搜索引擎
这里的随笔举出例子:证明Python是强类型语言,JavaScript是弱类型语言

Python:

    1 + '1'

1310818-20180403193350870-510268110.png

JavaScript

    1 + '1'

1310818-20180403193526761-1387827175.png


动态与静态语言

动态类型语言是指在运行时检查类型,可以给类/实例在运行时绑定任何属性和方法;在编译时检查类型的语言是静态语言(需要声明类型)。Python、Ruby是动态语言,也使用协议。


优点与缺点

1. 强类型能及早发现缺陷

以下是弱类型语言JavaScript的不足

' ' == '0'    // false
0 == ' '    // true
0 == '0'    // true
' ' < 0    // false
' ' < '0'    // true

Python是强类型,不会自动在字符串和数字之前强制转换,所以在Python3中,上述==表达式的结果都是False,而<比较会抛出TypeError。

2. 静态类型使得一些工具(编译器和IDE)便于分析代码、找出错误和提供其他服务(优化、重构,等等)动态类型便于代码重用,代码行数更少,而且能让接口自然成为协议而不提早实行。

3. Python是动态强类型语言。PEP484——Type Hints,无法改变这一点。但是API作者能够添加可选的类型注解,执行某种静态类型检查。

转载于:https://www.cnblogs.com/allen2333/p/8710729.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值