计算机中的null,在大多数的程序语言里面表达没有数据、无效输出、零数据、空集,等等。简单地说就是什么都没有。
在牛津词典里面,null这个词的边上有一个“ technical”标志,表明这个单词就是来自于计算机术语,它的诞生就源自于程序语言的诞生。
而后,null数据和void数据的意义被引用到法律术语中去,又出现了短语“null and void”。
null被最早引用到英文中,是1965年,由英国人Tony Hoare引入。广泛使用,到影响语言的程度,是通过微软的visual basic语言。因此这个词的读音,在英语国家里是在1965年之后才规范确定的。
很显然,英语词典中采用[nʌl]这个音标,是根据英语的发音规则制定的。根据音标,一部分英语音标学得比较好的程序员会把它读成“闹”。因为,[ʌ]发音类似中文阿,双写l发音这里是negative l,发音类似于中文的O用喉音的位置发出来,听起来有点类似“闹”。
但是,如果我们去找相关的视频,听一听老外读这个单词的读音,我们会发现说英语国家的人读这个词的时候经常会把[ʌ]音吃掉,读成[nl],很容易和no听混。
有很多程序员会把这个词读成“怒儿”,是不是他们就一定是读错了呢?我的答案是:不一定。
读成“怒儿”的第1种原因是大学的老师,就这么教的,既然老师这么教他们就这么学,然后也就这么说了。
第2种原因有可能确实是英语没学好,也不会去看音标,根据拼音的发音规则就发成了“怒儿”。
第3种情况是,在工作中有遇到过来自于德国的工程师,或者对接的外国人里面有德国的工程师,他们读的就是“怒儿”。(德国人不是真的发成“儿”,只不过德语的Negative L的发音,没法用中文表示,这里用“儿”代替)。真正的发音大家可以在网上查一下听一听。
Null在德语里就是“零”的意思,当时在计算机语言引入这个概念的时候,也确实是从德语中引入的。因为在计算机数据中表达了“0”以后,“0”仍然是一个数据,还需要用一个符号来表达没有数据。因此,需要一个是意思是“0”但是又和“0”意义不同的符号。因此,借用了德语。
德国的程序员在读“null”这个词的时候,自然也就采用了自己母语的读音。而且德国的程序员在世界的程序员圈子里面也是算有一定影响力的,工作交流中就会把这样的读音传播出去。
因此,高校里面的计算机教师以及一部分的程序员把它读成“怒儿”,你就未必能够把它理解成读错了,只不过是用了德语的读法而已,然后再带点中国的口音。