Kotlin基礎特性深刻講解

繼續學習基礎語法,在上次http://www.javashuo.com/article/p-mfilwwuf-hg.html中定義了一個兩數相加的函數,以下:html

其實對於這個函數還能夠進一步簡寫,由於函數體就一句話,以下:web

那若是函數不返回值呢,看下面的例子:安全

其實Unit是能夠省略掉的,IDE中也已經將它標灰了,以下:函數

那,這個Unit是幹嗎用的呢?以後再學習,先無論這個細節。若是說想輸出「a+b=5」這個形式的字串那該怎麼來弄呢,叫Java的風格應該是這麼寫的:學習

但在Kotlin中能夠採用「字符串模板」來實現,以下:spa

包名:3d

咱們知道在Java中的包名是跟碰盤上的文件目錄名是徹底匹配的,可是在Kotlin中不是這樣的,它的package是一種邏輯上的,不須要跟磁盤上的目錄同樣,好比說目前我們的包名是:指針

變量【val】及常量【var】: htm

首先來定義一個常量:blog

這就定義了一個int類型的常量a,若是對它進行賦值確定就會報錯了:

或者能夠一般類型推斷機制來更精簡的聲明一個常量,以下:

對於集合常量其實跟Java同樣,是常量地址不能變,可是裏面的元素是能夠變的,以下:

 

接着再來定義一個變量:

 

註釋:

跟Java的註釋相似,可是跟Java有一個區別就是註釋裏面能夠進行嵌套的,以下:

Byte賦值給Int:

在Java中一個byte是能夠賦值給int的,可是在Kotlin是絕對不容許小範圍的類型賦值給大範圍的類型,在Kotlin中要求賦值的類型必須如出一轍,好比:

要如何解決這個錯誤呢,就是手動轉一下既可,以下:

引用其它包的文件:

對於Java來講若是一個類想引用另外一個包名的類則須要使用import將包名導進來,而在Kotlin中其實相似,不過有它獨特的地方,下面來演示一下,先新建一個計算類,呆會會被其它包中的函數都調用的,以下:

接下來我們要在HelloKotlin2中來使用它,也得使用import,以下:

另外還有一種取別名的方式,以下:

流程控制:

其實還能夠更加簡單,也是Koltin獨有的:

那若是條件語句中可能有多行,那還能用上面的這種方式麼?固然是能夠的,最終結果就是語句最後一行寫的值,具體以下:

字符串轉換成整數,體現Kotlin安全性:

將字符串轉換成整數在實際工做中是很是常見的需求,有可能字符串並不是是純數字,因此可能會轉換失敗,另外也有可能會發生空指針異常,下面來看一下Kotlin針對這種場景的處理有啥優點,以下:

此時若是要想讓程序不報錯,須要在返回值上加上它:

好,接下來調用一下:

接下來再編寫一個相乘的函數:

接下來再來一個新函數,須要說明一個問題:

調用並運行:

好,一切都很好理解,可是!!若是這樣直接寫就會報錯了:

說明啥?說明對於一個可能爲null的值不作判空直接使用在Kotlin中是在編譯期間就給出異常提示從而在運行時能夠規避空指針的問題,那爲啥下面這樣寫就不報錯呢?

這是由於執行到這句話,Kotlin能知道atInt和b2Int必定是整數不可能爲null,因此能夠直接這樣寫了,從這個細節就能夠看到Kotlin這門語言確實是比Java在細節上要聰明的多,極大的能夠減小在運行期間拋出的異常, 因此學好它真的是挺有必要的。

相關文章
相關標籤/搜索