Kotlin學習

基本語法

  • 聲明變量
val a:Int=1 // val 標識的變量不可變 相當于java中的final
var a:Int=0 // var 標識的變量為可變變量
var a:Int=null // 顯示聲明可空變量

//Kotlin 中沒有標識變量,方法為靜態的關鍵字
class A{
    companion object{
        //在這里聲明的變量,方法相當于Java中的靜態變量,方法
    }
}

lateinit var o:Object //lateinit:修飾變量表示這個變量會在使用之前由用戶主動賦值,使用時不再做非空判斷,如果使用時未賦值,會拋出空異常。
  • 類繼承
class Base(Int a,Int b){}

class A(Int a,Int b) : Base(a,b){
    //初始化代碼塊
    Init{}
}
  • 方法聲明
/**
*定義一個方法,方法的參數可以有默認值,返回值類型為Int
*/
fun a(a:Int,b:Int,c:Int=0):Int{
    return 0
}
//調用方法
a(0,0,1)

a(0,0)  //參數c 使用默認值

a(a=0,b=0,c=1) // 

與Java的不同點

  • 沒有三元操作符

Kotlin中if 可以是一個表達式,因此沒有三元操作符

//java:
int a=b>c?b:c;
//kotlin:
val a=if (b>c) b else c
  • 沒有switch 關鍵字,相同功能可使用when代替
var a=3
when(a){
    1->...
    2->...
    else->...
}
  • Kotlin 中class 默認為final類,不能被繼承,如果想擁有子類,需用 open 關鍵字修飾

方法

  • lambdas

lambda表達式由{}包裹,-> 符號 前邊是參數,后邊是body,如果函數有返回值,最后一行為返回值。

如果lamdba只有一個參數,可省略參數和->符號,在body中 it 表示入參

如果參數有多個并且部分參數在body 中不會使用可用 _ 表示

// lambdas 使用示例

// fun1 使用方法作為參數
fun fun1(noMeaning(a:Int,b:Int)->Int){}
// 調用fun1 并使用lamdba作為參數
fun1({1,2->2})
// 
fun1({_,_->3})
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容