Welcome 微信登录

首页 / 软件开发 / JAVA / 冒号课堂§5.2:数据类型

冒号课堂§5.2:数据类型2011-06-27 BlogJava xyz98第五课 语言小谈(2)

5.2数据类型——规则与变通

操纵于规矩之中,神明于规矩之外 ——《俞震·古今医案按》

关键词:数据类型,静态类型,动态类型,Duck类型,强类型,弱类型,类型安全

摘要:关于数据类型的讨论

!预览

·Duck类型的哲学是:是什么不重要,重要的是能干什么

·将一个会叫会游的家伙放进池塘看起来不算坏主意,但如果一艘轮船趁机也轰隆隆地开了进来,事情恐怕就不那么美妙了

·静态类型检查类似“疑罪从有”的有罪推定制,动态类型检查类似“疑罪从无”的无罪推定制

·尽可能守规则,必要时求变通

·规则如裤带,过于宽松和过于束缚都不好

?提问

·动态语言与动态类型语言是一回事吗?

·数据类型有哪两个要素?其意义何在?

·什么是动态类型和静态类型?它们的区别是什么?各有什么优缺点?

·什么是鸭子类型(duck typing)?它有什么优缺点?

·什么是强类型与弱类型?什么是类型安全的?

:讲解

待教室平静下来,冒号再度开腔:“在谈论动态语言之前,最好先澄清一下它与动态类型语言之间的区别。”

叹号讶然道:“它们不是一回事吗?一直以为动态语言是动态类型语言的简称呢。”

“有亲戚之名,却无血缘之亲。名称上相似,加之动态语言绝大多数确是动态类型语言,造成混淆实属在所难免,但二者之间并无必然联系——动态语言不一定是动态类型语言[1],动态类型语言也不一定是动态语言[2]。”冒号飞跑的舌头几乎绊蒜,同时把众人的脑子搅成了一锅粥。

见势不妙,冒号改用迂回战术:“我们不妨再谈开些,大家对数据类型是如何理解的?”

逗号随口道:“数据类型不就是数据的种类吗?”

众人暗笑:说了跟没说差不多。