天天看點

Kotlin-1-基礎(變量+null值+函數聲明)1、變量的聲明2、對null的約定3、對函數的約定4、類型推導

目錄

1、變量的聲明

2、對null的約定

3、對函數的約定

4、類型推導

1、變量的聲明

var age: Int = 18
val age1: Int = 19
           

2、對null的約定

var name: String = "Zhang San" //為不可null的變量
var name1: String? = null      //為可null的變量
var name2: String = null       //報錯
           
private fun testNull(){
    name=name1     //1、報錯,不可null的變量不能直接轉換為可null
    name=name1!!   //2、可以加兩個感歎号進行類型強轉
    name1=name     //3、不可null可的變量可以隐式轉換為可null
}

           

注意:由于null隻能被存儲在Java的引用類型的變量中(基本資料類型不能指派為null),是以在Kotlin中基本資料類型的可null版本都會使用該類型的包裝類型。同樣,如果你用基本資料類型作為範型類的類型參數,Kotlin同樣會使用該類型的包裝類型。

3、對函數的約定

private fun getOld(old:Int){}

private fun getOld1(old:Int):Int {
    return 18
}

private fun getAge(age1:Int,age2:Int) = age1+age2
           

4、類型推導

Kotlin語言中我們可以不顯式的聲明變量的類型,編譯器會自動給我們推導出類型。
val int1=10
val boolean1=true
val long1=1000L
val float1=10.1f
val double1=10.2
val string1="張三"
val char1='a'

fun main() {
    println("int1的類型=${int1.javaClass.name}")
    println("boolean1的類型=${boolean1.javaClass.name}")
    println("long1的類型=${long1.javaClass.name}")
    println("float1的類型=${float1.javaClass.name}")
    println("double1的類型=${double1.javaClass.name}")
    println("string1的類型=${string1.javaClass.name}")
    println("char1的類型=${char1.javaClass.name}")
}
//輸出結果
int1的類型=int
boolean1的類型=boolean
long1的類型=long
float1的類型=float
double1的類型=double
string1的類型=java.lang.String
char1的類型=char