代碼之間為什么要加空格?

據(jù)我觀察,大多數(shù)人寫(xiě)代碼喜歡在符號(hào)兩側(cè)加空格,而且還會(huì)嘲諷不加空格的人。這些支持者認(rèn)為,加空格可以讓代碼美觀,增強(qiáng)代碼的可讀性。但是我不喜歡加空格,因?yàn)檫@么寫(xiě)對(duì)代碼含義沒(méi)有影響,浪費(fèi)空間還很麻煩。我不認(rèn)為多幾個(gè)空格就能讓原本凌亂的代碼清晰起來(lái),反而會(huì)讓代碼看起來(lái)很松散,影響閱讀。

以上,是我在知乎上看到的一個(gè)題目,感覺(jué)蠻清新的,說(shuō)得似乎有理有據(jù)。就好像在說(shuō),據(jù)我觀察,大多數(shù)人喜歡早晚刷牙,而且還會(huì)嘲笑不刷牙的人。這些支持者認(rèn)為,刷牙有益于牙齒健康,空腔清新。但我不喜歡刷牙,因?yàn)槲已例X沒(méi)壞,吃嘛嘛香。我不認(rèn)為刷牙能保護(hù)牙齒健康,反而很浪費(fèi)時(shí)間。

對(duì)吧?我敢保證,這世界上有不少人不刷牙。說(shuō)出來(lái)不怕大家笑話,我上初中之前真沒(méi)刷過(guò)牙,就算是到現(xiàn)在,很多農(nóng)村的孩子仍然沒(méi)有刷牙的習(xí)慣。

在我寫(xiě)代碼的前一兩年里,寫(xiě)代碼也不習(xí)慣加空格,覺(jué)得很麻煩,并且加不加空格,真的不影響代碼的運(yùn)行效果。

// 加空格的寫(xiě)法
int a = 5;
int b = 3;
a = a + b;

// 不加空格的寫(xiě)法
int a=5;
int b=3;
a=a+b;

想知道為什么后來(lái)我開(kāi)始刷牙了呢?

記得小學(xué)五年級(jí)的時(shí)候,牙齒疼過(guò)一次,真的是喪心病狂地疼,什么東西也吃不了。那時(shí)候,哪有看牙科的,完全沒(méi)有,至少在我那時(shí)候的成長(zhǎng)環(huán)境下。

沒(méi)辦法,疼了大概有一周的時(shí)間,終于打聽(tīng)到鄰村有一個(gè)老先生,他那有秘方,父母就帶我去了。還真的見(jiàn)效,某一種秘制的液體滴在牙齒上,超級(jí)冰涼的那種,感覺(jué)整個(gè)牙齒完全失去了知覺(jué)。

有了這段痛苦的記憶,上初中后,看到很多同學(xué)都刷牙,于是我也就買了牙刷。初中的條件還是很差勁的,冬天,沒(méi)有熱水,洗臉的水和刷牙的水,都是前一天下午飯缸里接的水,放在課桌里。第二天早上到了教室,同學(xué)們就互幫互助,端著對(duì)方的飯缸倒水洗臉,臉沒(méi)凍壞,牙沒(méi)凍壞就是萬(wàn)幸啊。

我在代碼里加空格,和開(kāi)始刷牙有相似的經(jīng)歷。

Thisisavarofthings=yourfuckingtype+otherdamnedresult*me;
oh=mygodblessedsweetheart-thesaintangel/cursedcorpsehere;

哦,老天,上面這段代碼里就完全沒(méi)有空格,看起來(lái)密密麻麻,可讀性差到你感覺(jué)自己的雙眼受到了侮辱。

當(dāng)符號(hào)兩側(cè)的單詞很簡(jiǎn)單的時(shí)候,簡(jiǎn)單到只有 a 和 b 的時(shí)候,的確,不加空格好像看起來(lái)更緊湊一些。但考慮到實(shí)際的編碼中,命名要有意義,長(zhǎng)度都不會(huì)太短,這時(shí)候,如果沒(méi)有空格的輔助,代碼就真的不堪入目了。

Thisisavarofthings = yourfuckingtype + otherdamnedresult * me;
oh = mygodblessedsweetheart - thesaintangel / cursedcorpsehere;

OK,現(xiàn)在加了空格,是不是觀感上就完全不一樣了。單詞與單詞之間,很清楚,很協(xié)調(diào),不拖泥帶水。

一般的 IDE 都有自動(dòng)格式化代碼的快捷鍵,寫(xiě)完代碼來(lái)那么一下,立馬就會(huì)把該有的空格給加上。我現(xiàn)在已經(jīng)完全習(xí)慣手敲空格了,感覺(jué)自己很優(yōu)雅,甚至有點(diǎn)大師范的感覺(jué),畢竟程序員還是要有點(diǎn)追求的,對(duì)吧?

說(shuō)到這,不得不替古人感慨一下,由于紙張稀缺,所以大師們寫(xiě)出來(lái)的文章都是沒(méi)有標(biāo)點(diǎn)符號(hào)的,要是沒(méi)點(diǎn)文化水平,密密麻麻一團(tuán)的字?jǐn)D在一起,真不一定能讀的懂,況且漢語(yǔ)是這么博大精深。

我們算是幸運(yùn)的,讀到的文言文都經(jīng)過(guò)了加工,編輯們幫我們加了標(biāo)點(diǎn)符號(hào),所以看起來(lái)不至于那么吃力。但我就特別討厭一些題目,讓加標(biāo)點(diǎn)符號(hào)斷句的那些,很無(wú)聊。

所以,別任性,該加空格就加空格,你寫(xiě)的代碼可不只是給你一個(gè)人看的,負(fù)責(zé)任點(diǎn)。

換句話說(shuō),我也可以寫(xiě)文章不換行,對(duì)吧?寫(xiě)一行兩行文字真沒(méi)必要換行。但段落多了,還不換行,我保證你看不下去。

不過(guò),需要注意一點(diǎn)的是,我看有些視頻課里,有些講課人習(xí)慣什么地方都加空格,我也是有點(diǎn)受不了的,比如說(shuō)方法名和小括號(hào)之間——public void print (),這就有點(diǎn)不合時(shí)宜了。

按照規(guī)約來(lái)說(shuō),方法名和小括號(hào)之間是不需要空格的,因?yàn)闆](méi)有空格看起來(lái)更自然,更像一個(gè)方法,而不是割裂的關(guān)鍵字和小括號(hào)。

寫(xiě)代碼不是鉆牛角尖,就像有些人喜歡在 if 語(yǔ)句里使用 == false 一樣——if (isFlase == false) {},他覺(jué)得這樣的代碼更具有可讀性,這不是出來(lái)搞笑的嗎?

最次,你應(yīng)該寫(xiě)成下面這樣子:

if (isTrue) {

} else {

}

這都比在 if 條件中使用 == false 來(lái)得讓人舒服。

做程序員嘛,總得有個(gè)程序員的樣子,想優(yōu)雅點(diǎn)的話,把非“!”用上——if (!isFlase),搞那些無(wú)病呻吟的代碼,真的很掉檔次。

無(wú)規(guī)矩不成方圓,你如果不想遵守代碼規(guī)約的話,不想團(tuán)隊(duì)協(xié)作的話,請(qǐng)隨意處置你的代碼,誰(shuí)也拿你沒(méi)辦法。逃逃逃)

如果覺(jué)得文章對(duì)你有點(diǎn)幫助,請(qǐng)微信搜索「 沉默王二 」第一時(shí)間閱讀。

本文已收錄 GitHub,傳送門(mén)~ ,里面更有大廠面試完整考點(diǎn),歡迎 Star。

我是沉默王二,一枚有顏值卻靠才華茍且的程序員。關(guān)注即可提升學(xué)習(xí)效率,別忘了三連啊,點(diǎn)贊、收藏、留言,我不挑,嘻嘻。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容