成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Google "招安"了Kotlin Kotlin初體驗

企業(yè)動態(tài)
每個語言的流行都需要一個引爆點,就像Ruby on Rails 引爆了Ruby 一樣, Android 也許是之前不那么流行的Kotlin的引爆點。

[[191780]]

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

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

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

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

一、Hello world 的秘密

Hello world很快就映入眼簾:

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

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

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

強類型有個巨大的優(yōu)勢,就是可以在編譯期自動做類型檢查, 幫助程序員發(fā)現(xiàn)很多錯誤。

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

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.

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

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

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

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

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

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

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

二、基本語法

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

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

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

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

三、類 

感覺不錯吧?

聲明了一個類, 構(gòu)造函數(shù)中的參數(shù)是name和age , 然后就可以當(dāng)做屬性來使用了,不用getter/setter 方法。

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

四、繼承和多態(tài)

一個類想被繼承, 必須標(biāo)注為open 才行!

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

這個規(guī)定要求真是嚴格啊!

五、Data class

在Java中我們經(jīng)常創(chuàng)建一些只保持數(shù)據(jù),而沒有啥實際行為的類, 再來點語法糖:

hashCode, equals方法自動生成

toString自動生成

getter/setter自動生成

很貼心吧?

六、集合

寫程序,基本的數(shù)據(jù)結(jié)構(gòu)是必備, kotlin也有語法糖前來助陣:

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

七、總結(jié)

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

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

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

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

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

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

【本文為51CTO專欄作者“劉欣”的原創(chuàng)稿件,轉(zhuǎn)載請通過作者微信公眾號coderising獲取授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2012-11-19 13:53:42

職場Google實習(xí)生

2014-12-11 09:56:33

DockerKubernetesGoogle

2017-08-03 15:54:50

Kotlin繼承

2022-02-28 10:38:13

Kotlin插件Android

2009-08-01 09:06:35

UbuntuOneLinux開源操作系統(tǒng)

2009-03-09 15:12:39

XenServer安裝

2018-06-05 10:30:28

KotlinJava語言

2023-07-15 08:01:38

2010-11-22 10:31:17

Sencha touc

2011-05-30 15:12:10

App Invento 初體驗

2018-01-03 11:51:06

KotlinTipsJava

2017-12-27 14:51:12

Kotlin谷歌Java

2018-09-17 11:10:06

2011-08-02 10:26:59

iOS 多線程 線程

2011-11-01 10:30:36

Node.js

2013-06-08 10:15:29

Outlook 201Outlook 201

2011-09-15 15:03:10

2010-12-13 11:39:39

2025-03-18 07:30:41

2009-11-30 10:09:02

谷歌Chrome OS
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产成人精品一区二 | 综合精品 | 午夜视频在线播放 | 国产黄色av网站 | 亚洲欧美综合 | 91在线精品秘密一区二区 | 亚洲第一天堂无码专区 | 羞羞的视频在线看 | 国产精品久久久久一区二区三区 | 日本精品视频在线 | 欧洲精品码一区二区三区免费看 | 一区二区三区四区国产 | 91精品国产自产精品男人的天堂 | 久久国产精品亚洲 | 欧美2区| 国产精品一区二区久久久久 | 亚洲 欧美 另类 综合 偷拍 | 81精品国产乱码久久久久久 | 亚洲成人毛片 | 欧美激情一区二区三区 | 一区二区视频在线观看 | 国产91精品久久久久久久网曝门 | 久草网址 | 在线观看亚洲专区 | 色视频在线播放 | 成人精品一区亚洲午夜久久久 | 91亚洲国产成人久久精品网站 | 久久精品97 | 久久久久久久久99精品 | 国产成人免费网站 | 欧美aaaaaaaa| 91精品国产91久久久久久吃药 | 综合网在线 | jlzzjlzz国产精品久久 | 成人亚洲精品久久久久软件 | 国产精品久久久 | 操久久| 国产亚洲一区精品 | 国产二区在线播放 | 国产探花在线精品一区二区 | 亚洲一区二区三区免费视频 |