甲壳虫|python到底是强类型语言,仍是弱类型语言?( 四 )
本文为了利便理解 , 使用这个主要特征来划分强弱类型 , 但是要夸大 , 强类型不是没有隐式类型转换 , 而是可能有很少且公道的隐式类型转换 。
(2)如果有其它解释器令 Python 支持广泛的隐式类型转换 , 那 Python 仍是强类型语言么?
语言的标准规范就像是法律 , 而解释器是执法者 。 假如有错误的执法解释 , 那法律仍是那个法律 , 应该改掉错误的执法行为;假如是法律本身有题目(造成了解释歧义和矛盾 , 或者该废弃) , 那就应该修改法律 , 保证它的确定性(要么是强类型 , 要么是弱类型) 。
(3)为什么说 Javascript 是弱类型?
由于它的隐式类型转换非常多、非常复杂、非常过分!好比 , Javascript 中123 + null结果为 123 , 123 + {}结果为字符串“123[object Object]” 。
另外 , 它的双等号“==”除了有基本的比较操纵 , 还可能发生多重的隐式类型转换 , 例如true==["2"]判定出的结果为 false , 而true==["1"]的结果是 true , 还有[]==![]和[undefined]==false的结果都为 true……
(4)C++ 是不是弱类型语言?
前文提到《流畅的Python》中将 C++ 归为强类型 , 但实际上它应该被归为弱类型 。 C++ 的类型转换是个非常复杂的话题 , @樱雨楼 小姐姐曾写过一个系列文章做了系统论述 , 文章地址:如何攻克 C++ 中复杂的类型转换?、详解 C++ 的隐式类型转换与函数重载!、谁说 C++ 的强制类型转换很难懂?
6、小结
强弱类型概念在网上有比较多的争议 , 不仅在 Python 是如斯 , 在 C/C++ 之类的语言更甚 。
实在在学术上 , 这个概念早已有明确的定义 , 而且事实上也被许多人所接纳 。
那些反对的声音大多是因为概念混用 , 由于他们忽略了另一种对语言进行分类的维度;同时 , 还有一部分值得注意的原因 , 即不能以为强类型即是“完全无隐式类型转换”或“只要没有xxx隐式类型转换” 。
本文先容了社区中对python 的主流分类 , 同时对几类疑似隐式类型转换的用法进行了分析 , 论证出它是一种强类型语言 。
【甲壳虫|python到底是强类型语言,仍是弱类型语言?】
推荐阅读
- 献血到底有益健康吗?
- 南极|臭氧空洞问题卷土重来,达到年度最大范围,南极到底怎么了?
- 到底去美国留学有没有用?不黑不吹,用事实说话
- 甲壳虫|原以为办辅导班的人很挣钱, 了解以后发现他们真心不轻易
- 每天一首音乐|「夜读」那些又忙又自律的人,活得到底有多赚?
- 美帝选票到底啥样?来看看中文版美国选票
- 炒黄金, 你到底是在投资,还是投机?
- 学习苹果好榜样:30%的“谷歌税”到底合不合理?
- 如松:来自欧亚大陆中央的烽火,他们到底是谁
- 女主临朝则武德不振?到底是性别偏见还是制度使然