“学编程”有什么用?这是普通人站在“编程大门”前,叩问自己最多的一句话。
要问我,我会说,如果我真的能够深刻理解“编程的机制”,我的逻辑水平至少可以上一个台阶。
比如,编程中的必备知识:数据类型。
每个数据,都属于一个确定的、具体的数据类型。
不同类型的数据在数据表达、取值范围、占用内存以及可参与的运算种类等方面都是不一样的。
通俗的讲,数据是有属性的,不同属性的数据没办法比较,更不要说运算了。
举个例子:计算机世界里,7和7.0是两个不同类型的数据,7是整型数据,7.0是浮点型数据,没法比较大小,更没办法(直接)相互运算。
你觉得很麻烦,很奇怪吗?
这是最基本的逻辑:(拥有明确定义)不同类型的东西,不能比较。
日常生活中,我们不怎么关心“定义”,也不怎么关心“类型”——这是人们觉得编程麻烦且复杂的根本原因。
被“比较”的事物应该具备以下条件:
属于同一范畴:水果应该和水果比,比如苹果和鸭梨;手机应该和手机比,比如苹果和华为;
具有相同属性:筷子和(用餐)刀叉可以比优劣,但和菜刀毫无可比性。
道理似乎不难理解,但生活中,处处都是滥用比较的重灾区。
比如,小说《项链》中爱慕虚荣的女主玛蒂尔达,她带着借来的璀璨项链参加舞会,显然,她与其他参与舞会的人都属于人类,看起来属于同一范畴,但“工薪阶层”和“富家太太”根本不可能是同一类人;
再比如,先买房还是先买车,虽然都是用钱消费,显然房子相比车子,更多了一层投资属性,根本是两回事!
再比如,你觉得影视作品里抽烟的人很酷,于是你也学他们抽烟,看起来是同样的行为,可你有没有想过,影视作品里的镜头都是摆拍的,都精挑细选出来“让人觉得很酷”的,你叼着烟真的很酷么?
“不同类型的数据,真的没办法比较”——如果下次,再遇到一些莫名其妙的比较,可以先问问自己:A和B是同一种“数据类型”么?