計算機中的null,在大多數的程序語言裡面表達沒有數據、無效輸出、零數據、空集,等等。簡單地說就是什麼都沒有。
在牛津詞典裡面,null這個詞的邊上有一個“ technical”標誌,表明這個單詞就是來自於計算機術語,它的誕生就源自於程序語言的誕生。
而後,null數據和void數據的意義被引用到法律術語中去,又出現了短語“null and void”。
null被最早引用到英文中,是1965年,由英華人Tony Hoare引入。廣泛使用,到影響語言的程度,是通過微軟的visual basic語言。因此這個詞的讀音,在英語國家裡是在1965年之後才規範確定的。
很顯然,英語詞典中採用[nl]這個音標,是根據英語的發音規則制定的。根據音標,一部分英語音標學得比較好的程序員會把它讀成“鬧”。因為,[]發音類似中文阿,雙寫l發音這裡是negative l,發音類似於中文的O用喉音的位置發出來,聽起來有點類似“鬧”。
但是,如果我們去找相關的視頻,聽一聽老外讀這個單詞的讀音,我們會發現說英語國家的人讀這個詞的時候經常會把[]音吃掉,讀成[nl],很容易和no聽混。
有很多程序員會把這個詞讀成“怒兒”,是不是他們就一定是讀錯了呢?我的答案是:不一定。
讀成“怒兒”的第1種原因是大學的老師,就這麼教的,既然老師這麼教他們就這麼學,然後也就這麼說了。
第2種原因有可能確實是英語沒學好,也不會去看音標,根據拼音的發音規則就發成了“怒兒”。
第3種情況是,在工作中有遇到過來自於德國的工程師,或者對接的外華人裡面有德國的工程師,他們讀的就是“怒兒”。(德華人不是真的發成“兒”,只不過德語的Negative L的發音,沒法用中文表示,這裡用“兒”代替)。真正的發音大家可以在網上查一下聽一聽。
Null在德語裡就是“零”的意思,當時在計算機語言引入這個概念的時候,也確實是從德語中引入的。因為在計算機數據中表達了“0”以後,“0”仍然是一個數據,還需要用一個符號來表達沒有數據。因此,需要一個是意思是“0”但是又和“0”意義不同的符號。因此,借用了德語。
德國的程序員在讀“null”這個詞的時候,自然也就採用了自己母語的讀音。而且德國的程序員在世界的程序員圈子裡面也是算有一定影響力的,工作交流中就會把這樣的讀音傳播出去。
因此,高校裡面的計算機教師以及一部分的程序員把它讀成“怒兒”,你就未必能夠把它理解成讀錯了,只不過是用了德語的讀法而已,然後再帶點中國的口音。