kotlin 學習入門


最近kotlin越來越受歡迎了,好多網站預言--kotlin將在之后的幾年里徹底替換java,成為一種新的服務端編程語言。kotlin基於java。所以很多語法與java類似,從java切換到kotlin基本不需要成本。

最近在用kotlin在寫一個項目,剛開始寫代碼感覺比較別扭,一旦用熟練后,再切換回java,就會感覺到java的語法有點累贅了。下面將使用kotlin中的心得分享給大家。

語法見:https://www.kotlincn.net/docs/reference/basic-types.html

太基礎的語法參見上述鏈接,在博客中只寫了作者在使用過程中感覺和java有較大差別的地方。

1,數據類型

kotlin中的數據類型和java相同

Type Bit width
Double 64
Float 32
Long 64
Int 32
Short 16
Byte 8

每個數字是有符號的。而且在kotlin中提供了很多數據類型相互轉換的方法,例如

val valInt = 23 // 默認為Int類型
val valLong = valInt.toLong() // 將23 轉換為Long類型
val valShort = valShort.toShort() // 將23 轉換為Short類型
val valByte = valByte.toByte()   // 將23 轉為Byte類型

上面是數據轉型的例子,但是在Int轉為Byte時,如果大於127,在Int轉為Byte時,在轉回Byte時會變成負數,這時候要加上256。java 中也存在這樣的問題

下面介紹一下kotlin中對象的定義

val a = 10 // 定義不可變的int類型值a
var b = 20 // 定義可變的int類型值b
val c = IntArray(5) // 定義引用不可變的Int類型數組 c
var d = LongArray(8) // 定義引用可變的Long類型數組 d

首先可以看出在定義變量是不用再變量名稱前寫明變量的類型,其次在定義變量時不用使用new關鍵字。 

kotlin中默認的數值類型為int。

上面代碼中最大的區別在於定義中的val,var。val代表值(對象則指引用)不可變,var代表值(對象則指引用)不可變。這些規則是在編譯器檢驗的,如果在聲明對象時,聲明為val在后面的代碼中,如果對該對象的值或引用做出修改,那么就會報錯。這時需要將對象聲明為var類型的。

for循環

在kotlin中如果寫for循環,你會感覺是一件很開心的事,kotlin提供了很多類型的函數

for(i in 1 until n){
    // 不包含n
}
for(i in 1 ... n){
    // 包含n
}

for(i in n downto 0){
    // 向下遍歷到0
}
for(i in 0 until 0 step 2){
    // 循環步長為2
}
(0 until n).forEach{ i->doSomeThing()}
// 最好用的for循環

2,類的定義

kotlin也是面向對象的語言,所以在語法中也有類的定義,在講之前先解釋一下權限修飾符。kotlin也包含和java中的public,private和protected這三個修飾符,但是在kotlin中類前 不寫修飾符表示為public。除此之外kotlin中還存在另外一個修飾符:internal,這個修飾符表示只有模塊內部才能訪問。當你使用kotlin開發了一個模塊,有些類定義為API,但是其中有些成員或函數,在自己的模塊中的其他類可能會調用,但是又不希望使用你API的人調用,就可以使用internal修飾。

類的繼承

類的定義在這里不再詳細介紹,在這里只介紹一下類的繼承時的父類中構造函數有參數的情況:

class open Demo constructor(name: String){
    private val name: String
    init{
        this.name = name // 單個構造函數時,構造函數體
    }
}

class SubDemo constructor(name: String) : Demo(name){
    
}
  1. 首先如果一個類不是抽象的,而且要被其他類要繼承,那么這個類就要在定義時用open關鍵字聲明,該類中需要被繼承的方法也要有open關鍵字修飾。
  2. 子類繼承的父類寫在子類名稱之后,用“:”隔開,最重要的一點就是,父類不能只寫一個名稱,而且要給其構造函數傳參數。

以上就是我最近的學習心得,很多細節沒有描述,我會后續補充,以上內容供大家參考並批評指正。

在實際的項目編寫過程中,kotlin代碼與java代碼可以共存,且可以相互調用,這就使得java工程師切換到kotlin可以更好的理解kotlin語法。其次kotlin工程師與java工程師可以共同開發一個項目,只要商定API,那么就不會相互影響。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM