1. 程式人生 > 其它 >Android-Kotlin

Android-Kotlin

一、Kotlin的內容

1.擴充套件函式和擴充套件屬性

2.不可空型別和可空型別

使用Kotlin程式設計比Java更加安全,至少在空指標問題上寫起來程式碼來會更加“開心”。Kotlin中引入了不可空型別與可空型別來明確宣告一個變數是否可能為null,同時在編譯期通過型別來明確宣告一個變數是否可能為null,同時在編譯期通過型別是否匹配來檢查空指標異常,大大降低了空指標異常出現的概率。同時,Kotlin還提供了Evis操作符、安全呼叫符等極簡的語法格式,使開發者從Java的null防禦式程式設計中被釋放出來。

var a = "abc"

a = null //就會報錯

宣告可空的String型別,可以這樣寫:

var b:String? = "abc" //todo 宣告一個可空的string?型別

如果要呼叫可空物件的方法那就需要這樣呼叫才行,如果物件為空,就返回null

b?.length //todo 使用安全呼叫符

3.一等函式支援

在Kotlin中函式是第一等型別:我們可以將函式像值一樣傳遞,函式可以作為另一個函式的返回值。我們通常稱之為“一等函式”支援。例如:

//todo 宣告一個不可變的List

val list = listOf(1,2,3,4,5,6,7)

//todo 呼叫filter函式,傳入一個Lambda表示式(it%3=0)作為引數[1,2,4,5,7]

list.filter{it%3!=0}

4.智慧型別推斷

在上面的諸多例子中,可以看到在宣告變數的時候並沒有顯式指定它的型別。Kotlin編譯器會自動推斷出其型別。

二、程式設計哲學

Kotlin的定位是一種現代化工業語言:它專注於程式碼重用和可讀性的彈性抽象,以及面向早期錯誤偵測和明確捕獲維護與清理的意圖這些問題的靜態型別安全性。

Kotlin最重要的使用場景之一是對於一個龐大的Java程式碼庫,其開發者需要一個更棒的語言:你能夠將Java和Kotlin自由混合,遷移可以是漸進式的,不需要一下子對整個程式碼庫進行改變。

三、Kotlin語法基礎

1.變數和識別符號

變數標識一個物件的地址,我們稱之為識別符號。而具體存放的資料佔用記憶體的大小和存放的形式則由其型別來決定。

在Kotlin中,所有的變數型別都是引用型別。Kotlin的變數分為val(不可變)和var(可變的)。可以簡單理解為:

val是可讀的,僅能一次賦值,後面就不能被重複賦值

var是可寫的,在它生命週期中可以被多次賦值。

只要可以,儘量在Kotlin中首選使用val不變值。因為在程式中大部分只需要使用不可變的變數,而使用val變數可以帶來可預測的行為和執行緒安全等優點。

2.關鍵字與修飾符

通常情況下,程式語言中都有一些具有特殊意義的識別符號是不能用作變數名,這些具有特殊意義的識別符號叫做關鍵字,編譯器需要針對這些關鍵字進行詞法分析,這是編譯器對原始碼進行編譯的基礎步驟之一。

Kotlin中的修飾符關鍵字主要分為:類修飾符、成員修飾符、訪問許可權修飾符、協變逆變修飾符、函式修飾符、屬性修飾符、引數修飾符、具體化型別修飾符等。

abstract 抽象類

final 不可被繼承final類

enum 列舉類

open 可繼承open類

annotaion 註解類

scaled 密封類

data 資料類

成員修飾符

override 重寫函式方法

open 宣告函式可被重寫

final 宣告函式不可被重寫

abstract 宣告函式為抽象函式