先附上Github鏈接:https://github.com/akak19193/Leetcode-Kotlin
爭(zhēng)取每天刷4道題。
為什么要用Kotlin刷題呢?其實(shí)還是為了學(xué)習(xí)Kotlin坟募。刷題的環(huán)境沒有那么多業(yè)務(wù)邏輯,可以更專注于語言的表達(dá)能力邑狸。
結(jié)論:強(qiáng)于Java懈糯,遜于Python。
看起來是廢話单雾,刷題之前就可以猜想得到赚哗。不過真的刷了之后感受才更深刻。
下面主要圍繞幾個(gè)點(diǎn)來談?wù)劊?/p>
- 變量聲明
相對(duì)于Java硅堆,類型推導(dǎo)很舒服屿储,不過還是比不了Python的不需聲明類型和單行聲明多個(gè)變量。
Kotlin的設(shè)計(jì)就是一行只能聲明一個(gè)變量硬萍,從代碼清晰角度來看很合理扩所,刷題的時(shí)候就顯得有點(diǎn)呆。 - Null機(jī)制
在業(yè)務(wù)代碼里朴乖,Kotlin的Null機(jī)制大大地加分,可是刷題的時(shí)候就沒那么愉快了助赞,因?yàn)檫@個(gè)環(huán)境基本不會(huì)有意外的數(shù)據(jù)买羞。在IDE上還好說,要是上了白板雹食,有些情況就需要考慮畜普。就算一般定義的變量都是非null,不過Map里面掏出來的可都是帶問號(hào)的群叶,何況有時(shí)候變量還真得帶問號(hào)吃挑,比如鏈表節(jié)點(diǎn),比如樹節(jié)點(diǎn)等等街立〔俺模總而言之,無IDE的情況下這個(gè)機(jī)制會(huì)增加寫代碼的出錯(cuò)機(jī)會(huì)赎离,不過如果這個(gè)都能考慮到逛犹,也說明思維非常縝密。 - 庫函數(shù)
Kotlin的標(biāo)準(zhǔn)庫函數(shù)在我看來是不遜于Python的虽画,很多輪子網(wǎng)上也有人造好了舞蔽,畢竟抱Java大腿。
總而言之码撰,Kotlin能做到略遜于Python已經(jīng)很不容易了渗柿,甩了Java幾條街。另外這個(gè)語言還很年輕脖岛,期望以后能有更好的發(fā)展做祝。