冒号课堂§5.2:数据类型

第五课 语言小谈(2)

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

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

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

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

!预览

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

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

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

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

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

?提问

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

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

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

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

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

:讲解

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

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

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

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

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

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

时间: 2024-11-30 03:04:19

冒号课堂§5.2:数据类型的相关文章

冒号课堂§3.4:事件驱动

第三课 常用范式(4) 3.4事件驱动--有事我叫你,没事别烦我 劳心者治人,劳力者治于人 --<孟子·滕文公上> 关键词:编程范式,事件驱动式,回调函数,framework,IoC,DIP,观察者模式 摘要:事件驱动式编程简谈 ?提问 什么是事件?有哪些不同类型的事件? 什么是回调函数?什么是异步同调?它们有什么用处? 控制反转的目的是什么?它是如何实现的?在框架设计中起什么作用? 控制反转.依赖反转原则和依赖注射的共同点是什么? 事件驱动式编程有哪些关键步骤? 异步过程特点和作用是什么?

冒号课堂§1.0:开班导言

第一课 开班导言 课前导读 第一课为整个课堂学习的内容和风格定调,并围绕三个问题进行展开:要成为一个优秀的程序员,最需要学习什么知识?领会什么思想?具备什么精神? 本课共分五节-- 1.开班发言 2.首轮提问 3.语言选择 4.初识范式 5.软件技术 1.1开班发言--程序员的四层境界 授人以鱼不如授人以渔 --古语 关键词:程序员,知识,思想,精神 摘要:对程序员的一些忠告和建议 ?提问 软件开发者的成长需要经历有哪些阶段? 要想在IT业中生存与发展,传统的学习方式是否够用? 优秀程序员应该具

冒号课堂§6.4:后台脚本

6.4后台脚本--敏捷开发的利器 操千曲而后晓声,观千剑而后识器 --<文心雕龙·知音> 关键词:后台脚本, Perl,PHP,Python,Ruby,RoR,LAMP 摘要:简谈Perl.PHP.Python和Ruby !预览 语言的发展趋势一定是动静结合.刚柔并济 Perl凝练晦涩,Python优雅明晰,Ruby精巧灵动,PHP简明单纯 或许优雅正是来自对细节和规范的重视 (RoR)与Ruby结合之后,便如一只猱身而上灵猫,立刻衬托出Java和.NET大象般的身影 ?提问 Perl.Pyt

冒号课堂§6.3:前台语言

6.3前台语言--视觉与交互的艺术 世人反不难而易之,用是通者亦罕 --<欧阳修·诗解统序> 关键词:前台语言,VB,Delphi,JavaScript,AJAX 摘要:简谈VB.Delphi和JavaScript !预览 · Delphi让复杂的事情变得简单,VB让简单的事情变得更简单 · 它(JavaScript)宛如一只神奇的魔袋,乍看平淡无奇,却总能变出意想不到的宝贝 · 待友之道,贵在放大其优点而缩小其缺点,对待语言亦当如是 · 大道相通,难者亦易,易者亦难 ?提问 Visual B

冒号课堂§6.2:平台语言

6.2平台语言--先搭台后唱戏 大巧在所不为,大智在所不虑 --<荀子·天论篇> 关键词:平台语言, Java,C#,C++ 摘要:简谈Java和C# !预览 Java的目的是让一种语言在多种平台上运行,而C# 的目的是让多种语言在一种平台上运行 两个平台语言(Java和C#),一个重在语言,让语言向平台扩散:一个重在平台,让平台来凝聚语言 C++提供了一马平川的大路,也提供了陷阱密布的小道:Java则在大路上铺设水泥,同时封锁了捷径小道:C#同样填平了大路上的坑坑洼洼,但把一些小道上&quo

冒号课堂§5.4:语言误区

第五课 语言小谈(4) 5.4语言误区--语言的宗教情结 爱而不知其恶,憎而遂忘其善 --<吴兢·贞观政要> 关键词:编程语言,宗教,程序员,架构师 摘要:关于编程语言的一些误区 !预览 ·如果说编程范式是一种文化,那么编程语言更像是一种宗教--尽管它本不该是 ·语言只有两种:一种怨声载道,一种无人问津 ·对待一门语言的态度应该是:与其抱怨争执,不如扬长避短 ·过分拔高一种语言与抹煞语言之间的差别是两种极端,皆为秕言谬说 ·这些人若有幸拜关公为师,他们最艳羡的一定他的赤兔马和青龙偃月刀,或许还

冒号课堂§5.3:动态语言

第五课 语言小谈(3) 5.3动态语言--披着彩衣飞舞的脚本语言 故凡天下之理,欲向动上求静,静上求动 --<蔡牧堂·发微论> 关键词: 动态语言,静态语言,脚本语言 摘要: 动态语言简谈 !预览 ·程序是为终端用户服务的,而脚本是为程序员服务的 ·动态语言秉承的一个理念是:优化人的时间而不是机器的时间 ·待静态语言披盔戴甲.备马抬枪之际,动态语言已衣袂飘飘,长剑出手了 ·当脚本语言披上动态语言的彩衣,昔日不起眼的毛毛虫便羽化成碟,开始飘舞在众人追逐的目光之中 ?提问 ·脚本与程序的区别是什么

冒号课堂§5.1:教学计划

第五课 语言小谈(1) 课前导读 本课承上启下,为今后的学习作一些铺垫.在确定教学计划后,对数据类型和动态语言作了简单的介绍,并对有关编程语言的一些观点作出评论. 本课共分四节-- 教学计划--接下来的故事 数据类型--规则与变通 动态语言--穿着彩衣飞舞的脚本语言 语言误区--语言的宗教情结 5.1教学计划--接下来的故事 褚小者不可以怀大,绠短者不可以汲深 --<庄子·至乐> 关键词:编程范式,迭代学习法, 程序员 摘要: 讨论下一步教学计划 !预览 ·编程水平的提升之道是:在实战中演练招

冒号课堂§4.4:情景范式

第四课 重温范式(4) 4.4情景范式--餐馆里的编程范式 理论是认生的孩童,多陪他玩玩,自会活泼起来 --题记 关键词: 编程范式,情景编程 摘要: 编程范式在餐馆中的应用 ?提问 l 什么是闭包?为什么被称为闭包?它有什么作用? l 规则引擎有何用处? l 能否设想一个生活中的场景,把介绍的九种编程范式都用上? :讲解 叹号摘下眼镜,揉了揉眼:"范式再好,多了也难免有些审美疲劳." 逗号也搓着太阳穴:"这段时间脑子被灌得沉甸甸的." "彼此彼此!你们的