第五课 语言小谈(2)
5.2数据类型——规则与变通
操纵于规矩之中,神明于规矩之外 ——《俞震·古今医案按》
关键词:数据类型,静态类型,动态类型,Duck类型,强类型,弱类型,类型安全
摘要:关于数据类型的讨论
!预览
·Duck类型的哲学是:是什么不重要,重要的是能干什么
·将一个会叫会游的家伙放进池塘看起来不算坏主意,但如果一艘轮船趁机也轰隆隆地开了进来,事情恐怕就不那么美妙了
·静态类型检查类似“疑罪从有”的有罪推定制,动态类型检查类似“疑罪从无”的无罪推定制
·尽可能守规则,必要时求变通
·规则如裤带,过于宽松和过于束缚都不好
?提问
·动态语言与动态类型语言是一回事吗?
·数据类型有哪两个要素?其意义何在?
·什么是动态类型和静态类型?它们的区别是什么?各有什么优缺点?
·什么是鸭子类型(duck typing)?它有什么优缺点?
·什么是强类型与弱类型?什么是类型安全的?
:讲解
待教室平静下来,冒号再度开腔:“在谈论动态语言之前,最好先澄清一下它与动态类型语言之间的区别。”
叹号讶然道:“它们不是一回事吗?一直以为动态语言是动态类型语言的简称呢。”
“有亲戚之名,却无血缘之亲。名称上相似,加之动态语言绝大多数确是动态类型语言,造成混淆实属在所难免,但二者之间并无必然联系——动态语言不一定是动态类型语言[1],动态类型语言也不一定是动态语言[2]。”冒号飞跑的舌头几乎绊蒜,同时把众人的脑子搅成了一锅粥。
见势不妙,冒号改用迂回战术:“我们不妨再谈开些,大家对数据类型是如何理解的?”
逗号随口道:“数据类型不就是数据的种类吗?”
众人暗笑:说了跟没说差不多。
时间: 2024-11-30 03:04:19