麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > 綜合 > 正文

Google "招安"了Kotlin Kotlin初體驗

2024-07-21 23:03:37
字體:
來源:轉載
供稿:網友

Kotlin

今天多個群都炸了鍋,原因很簡單: Google "招安"了Kotlin , 成為Android 平臺的first-class 開發語言。

據說在發布會上,這個消息的宣布獲得臺下最熱烈的歡呼聲。 這是為什么? 難道是因為Android開發者一直羨慕iOS有簡單好用的Swift, 但是自己只能用“傻大笨粗” 的Java, 現在終于可以翻身了,Kotlin救世主降臨了!

作為熱愛技術的碼農, 肯定第一時間要去折騰一下。 不要在百度浪費時間, 直奔官網(https://kotlinlang.org)就好。

嗯,官網還算大氣, 不過作為開源的語言,應該用個動物做Logo 啊 :-) 參見《這個動物園,兩年也逛不完》

一、Hello world 的秘密

Hello world很快就映入眼簾:

Kotlin

別看代碼很短,里邊藏著很多秘密:

1. 這是一個強類型語言, 變量的類型確定以后,就不能改了

沒有聲明類型的msg 怎么辦? 肯定是自動推導出來的, 是個字符串。此外 msg 類型已經確定為字符串, 你要是想把msg改成整數: msg = 5 ,肯定是要報錯的。

強類型有個巨大的優勢,就是可以在編譯期自動做類型檢查, 幫助程序員發現很多錯誤。

2. 怎么和Go, Scala一樣, 把類型放到了變量名的后邊, 讓人有真氣逆行的感覺, 不調整下還真容易走火入魔。為什么要這樣?

Kotlin 的FAQ上說: We believe it makes the code more readable. Besides, it enables somenice syntactic features, for instance, it is easy to leave type annotations out. Scala has also proven pretty well this is not a problem.

嗯,更有可讀性,漂亮的語法特征, 似乎有點道理, 到底是不是這樣還得再研究, 既然人家已經確定這樣了,就慢慢適應吧。

3. 為了輸出hello world終于不用寫一個無用的類了!

但是等等, 這個Kotlin 不是號稱可以和Java 100%互操作嗎, 那java 程序想調用這些函數怎么辦? 沒有類怎么調用?

Kotlin

稍微想一想就會明白, Kotlin背后肯定需要生成一個類, 在這里類中有個靜態方法sum, 這樣才能讓別人使用嘛。

4. 我”熱愛 ”的public static void 去哪里了? System.out去哪兒了

對不起, kotlin需要的是精簡的語法, 已經把細節給你隱藏起來了, 如果你用javap 看看背后生成的類,就會看到public static void main() 老老實實的在那里待著呢!

至于System.out,肯定是自動導入了, 你要是不嫌麻煩,寫成java.lang.System.out.println("hello world") 應該也可以運行。

二、基本語法

Kotlin支持定義一個只能賦值一次的變量, 其實就是final 了:

Kotlin

這個語法糖還是挺方便的, 要想定義一個真正的變量該怎么辦?還有一個關鍵字: var

Kotlin

至于那些流程控制語句 if, else, for ,while 實在是沒什么新奇的,跳過。

這個when 是很不錯的, 比java中的switch 不知道要高到哪里去了, 簡直讓人愛死了。

Kotlin

三、類

Kotlin

感覺不錯吧?

聲明了一個類, 構造函數中的參數是name和age , 然后就可以當做屬性來使用了,不用getter/setter 方法。

唉, 對我這個有分號強迫癥的人, 語句之間不寫分號還是挺痛苦的, 慢慢適應吧。

四、繼承和多態

Kotlin

一個類想被繼承, 必須標注為open 才行!

一個方法想被override , 展示出多態, 父類的方法也得open , 子類需要聲明override!

這個規定要求真是嚴格啊!

五、Data class

在Java中我們經常創建一些只保持數據,而沒有啥實際行為的類, 再來點語法糖:

Kotlin

hashCode, equals方法自動生成

toString自動生成

getter/setter自動生成

很貼心吧?

六、集合

寫程序,基本的數據結構是必備, kotlin也有語法糖前來助陣:

Kotlin

正如你能想到的, Kotlin 可以輕松地調用Java 的集合來做事情。

七、總結

Kotlin的特性有很多,沒法在這里一一展示, 就體驗到這里吧。

總的來說, Kotlin這門語言簡化了Java , 完全是從一個是實用派的角度,而不是學院派的角度。

我在寫代碼的時候,總是有一種寫Javascript的感覺。

相比于JRuby , Jython這些一移植到JVM上的語言, Kotlin 和Java 和互操作感覺更加自然,但可能也是受限于Java平臺, 寫出的代碼還是沒有Ruby 那么優雅。

每個語言的流行都需要一個引爆點,就像Ruby on Rails 引爆了Ruby 一樣, Android 也許是之前不那么流行的Kotlin的引爆點。

如果你是Android 開發者, 可以馬上學習下Kotlin ,畢竟有Google的支持,相比Java, Kotlin能極大的減少代碼量,代碼看起來也清晰易懂, 值得投入。如果是Java 后端程序員, 我覺得可以初步了解, 觀望一下。

【本文為51CTO專欄作者“劉欣”的原創稿件,轉載請通過作者微信公眾號coderising獲取授權】


注:相關教程知識閱讀請移步到kotlin教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄在线| 国产资源在线看 | 国内精品伊人久久久久网站 | 毛片免费在线 | 欧美精品一区二区三区在线 | 国产精品视频一区二区噜噜 | 欧美一级理论 | 国产成人自拍小视频 | 性盈盈盈影院 | 九九黄色 | 斗破苍穹在线免费 | 久草在线最新 | 色妞妞视频 | 成人男男视频拍拍拍在线观看 | 久久成年网站 | 黄色7777| 亚洲爱爱网站 | 免费a级毛片永久免费 | 操操操操操 | 中午字幕无线码一区2020 | 精品久久久久久久久亚洲 | 性欧美日本 | 久久撸视频 | 黄色片网站在线免费观看 | 在线1区| 一区二区三区日韩精品 | 久久sp| 午夜免费一区 | 成人偷拍片视频在线观看 | 久久精品一二三区 | 久久av免费| 国产视频在线观看免费 | 久久精品视频黄色 | 国产精品久久久久久久久久久久午夜 | 欧美亚洲另类在线 | 久久成人免费网 | 欧美 日韩 国产 在线 | 国产精品成人亚洲一区二区 | 麻豆911| 国产18成人免费视频 | 日本高清视频网站www |