最近看到一則科技新聞, 大致內(nèi)容是google將kotlin語(yǔ)言作為android應(yīng)用開發(fā)的一級(jí)語(yǔ)言, 與java并駕齊驅(qū), 這是一個(gè)開發(fā)界的大事件大新聞, 連google的親兒子go語(yǔ)言也沒有這種待遇, 而kotlin貌似名不見經(jīng)傳,之前根本連聽都沒聽說過。 這讓我對(duì)kotlin產(chǎn)生了極大的好奇心,這種能讓得到google如此寵幸的語(yǔ)言到底是何方神圣?
在網(wǎng)上查了相關(guān)資源后, 對(duì)kotlin有了粗略的了解。 kotlin是一種jvm平臺(tái)語(yǔ)言, kotlin編譯器會(huì)將kotlin代碼轉(zhuǎn)換成jvm字符碼,因此它和java在本質(zhì)上是相同的,都可以在java虛擬機(jī)上運(yùn)行。
kotlin非常的年輕, 第一個(gè)版本是在2011年正式發(fā)布的
kotlin是jetbrains公司開發(fā)的語(yǔ)言, JB公司馳名世界,生產(chǎn)的IDE雄霸天下, 和宇宙第一的visual studio也沒有正面沖突, 因此除非是.net系程序員,否則對(duì)這間公司不會(huì)陌生。
kotlin有一個(gè)非??蓯鄣奶匦裕?就是和Java不分彼此, 兩種語(yǔ)言的代碼可以混編, 同時(shí)在一個(gè)項(xiàng)目中使用。 在我之前的認(rèn)知中,開發(fā)程序代碼混編, .net平臺(tái)應(yīng)該在這方面實(shí)踐處于領(lǐng)導(dǎo)地位, 我們可以用f#寫一個(gè)模塊, 編譯成.dll組件, 然后在c#項(xiàng)目中調(diào)用, 這也算一種代碼混編的形式,但卻不能在一個(gè)project中即寫c#代碼又寫vb或f#代碼。 而kotlin和java卻沒有這種局限性, 只要不是天真的把混編理解為可以將kotlin代碼和java代碼混合寫在一個(gè)文件當(dāng)中, 那么不管你怎么折騰都沒有問題。 你可以用java寫一個(gè)類,讓kotlin繼承; 你可以用kotlin寫一個(gè)函數(shù) ,讓java調(diào)用; 反正這兩種代碼的交互完全是無縫的。
我在通過網(wǎng)絡(luò)資料大致瀏覽了一下語(yǔ)法,有興趣的同學(xué)也可以看看
https://github.com/huanglizhuo/kotlin-in-chinese