1. 程式人生 > >快速學習Kotlin(一)基礎語法

快速學習Kotlin(一)基礎語法

變數和不可變數

在kotlin中我們在宣告一個變數的時候,採用var作為修飾符來修飾一個變數,而採用val修飾符來修飾一個不可變數。這裡需要注意一點,這是val是被定義為一個叫做不可變數,而不是一個常量,這兩者是有區別的。可以把被val修飾的變數比作在Java中的final,這樣理解起來會好一些。

var number : Int = 20;

val str : String  = "hello world";

我們可以看到,在kotlin中變數和不可變數的書寫方式和Java是不同的,在Java中一般變數型別是寫在變數名稱的前面,但是kotlin中變數型別卻是寫在了名稱的後面,並且中間使用冒號隔開,之後再用等號來進行賦值操作。

這裡插播一個題外話,我們在做Java開發的時候都知道,每條語句在結束的時候都必須用分號;作為結束,不然程式會報錯,但是在Kotlin中卻沒有這個概念,你可以寫分號也可以不寫,程式一樣可以執行通過。但是為了書寫的統一考慮,個人建議還是在結尾和Java一樣寫上分號

這裡需要注意一點,由於kotlin非常的智慧,如果你的變數型別是可以被程式推斷出來的,其實變數的型別不寫也沒有關係。例如上面的number被賦值為20,由於這個20是可以被推斷出來是一個Int型別,而"hello world"也可以被推斷出來是一個String型別,所以這兩個又可以寫成如下:

var number  = 20;

val str = "hello world";

程式不會報任何的錯誤。這是kotlin智慧的地方之一。

非空判斷

我們在編寫Java程式碼的時候常常會因為空指標而導致程式奔潰,這是讓很多Java開發者頭疼的問題,但是在kotlin語言中這個問題就得到了很好的處理。在kotlin中,有空安全的概念,只要在變數後面用問號"?"進行修飾,那麼這個變數就被宣告為可以為空的變數,如果不用?去修飾,那麼程式預設其不能為空,一旦他為空,編輯器在還沒編譯執行的時候就會報錯,導致編譯不通過,而不用再程式奔潰的時候才被發現。

var str : String  = null;

如果按照上面這麼寫,程式就會丟擲異常,因為str是一個不能為空的變數。如果想要他為空,則可以改成

var str : String?  = null;

這樣就可以確保他可以為空,不丟擲異常了。

函式

在kotlin中沒有方法的概念,轉而是叫做函式的概念。下面我們來宣告一個函式,看看他是如何被宣告的。

fun setMessage(str:String):String{
    
    return str;
}

我們可以看到,宣告一個函式非常簡單,只需要使用fun來修飾,後面跟函式的名稱,括號中是函式的引數,這裡注意,引數的寫法和之前宣告變數的寫法是一致的,都是" 變數名 :型別 "這種宣告方式。

在Kotlin中函式不像在Java中的方法一樣必須寫在類裡面,Kotlin中的函式是可以不用在類中寫的。你完全可以不用寫class,而直接上來就寫一個函式也沒有問題。這也使得Kotlin程式碼的編寫顯得十分簡單

如果函式有返回值,則用冒號加上返回值型別來處理,如果沒有則可以不寫,例如:


class KotDemo{
    
}

fun setMessage(str:String){

    println(this is $str)
    
}

這裡我們在變數引數str前面用了一個美元符號$來修飾,那麼這個美元符號的作用是什麼?

其實很簡單,這個是Kotlin中的一個特殊符號,他用來修飾變數,這樣在字串中就可以直接輸出這個型別的變量了。而在Java中一般變數和一串字元都是需要使用 " + " 來拼接,例如:

//Java中語法

System.out.println("this is " + str);

而Kotlin中由於有了$這個特殊符號,省去了Java中麻煩的加號拼接方式,使得語法上更加簡潔明瞭。

以上為kotlin重必須要掌握的基礎語法。

如果覺得我的文章能夠幫助到你,也歡迎關注我的微信公眾號「晨雨細曲」,有新技術和知識會推送在這上面。