1. 程式人生 > >Kotlin基礎學習筆記(2)

Kotlin基礎學習筆記(2)

1、基本資料型別

Kotlin的基本數值型別包括byte,short,int,long,float,double等。字元不屬於數值型別,是一個獨立的資料型別。

 

數字型別中不會主動轉換。例如,不能給Double變數分配Int。必須做一個明確的型別轉換,可以使用眾多的函式之一。

 

2、型別轉換

每種資料型別都有下面這些轉換:

toByte():Byte,

toShort():Short,

toInt():Int,

toLong():Long,

toFloat():Float,

toDouble():Double,

toChar():Char

有時候,也會有自動型別轉換,前提是根據上下文環境推斷出正確的資料型別而且數學操作符會做出相應的過載。例如:

val l = 1L+3 //Long+Int= Long

3、位操作符

對於IntLong型別,還有一系列的位操作符可用,分別是:

 

shl(bits) - 左移動

 

shr(bits) - 右移動

 

ushr(bits) - 無符號右移動

 

and(bits) -

 

or(bits) -

 

xor(bits) - 異域

 

inv() - 反向

 

4、條件控制

when表示式:when將它的引數和所有分支條件進行比較,直到某個分支滿足條件。

when既可以當作表示式使用,也可以當作語句使用。當被當作表示式的時候,符合條件的分支就是整個表示式的值,如果被當作語句使用,則忽略個別分支的值。類似於

C#裡的switch

 

val x = 1
when(x){
    1 -> print("x === 1")        //輸出 x === 1
    2 -> print("x === 2")
    else ->{
        print("x 不是1,也不是2")    
    }

}

 

這裡的else相當於switch中的default。如果很多分支需要相同的處理條件的話,可以把多個條件放在一起,用逗號分隔。

 

5、迴圈控制

for迴圈:for迴圈可以對任何提供迭代器的物件進行遍歷。

語法:

for(item in collection) print(item)

val items = listOf("apple", "banana", "kiwi")
for (item in items) {
    println(item)
}

for (index in items.indices) {
    println("item at $index is ${items[index]}")
}

還有whiledo...while迴圈,語法上與其他程式語言基本一樣

 

println("----while 使用-----")
var x = 5
while (x > 0) {
    println( x--)    //輸出5,4,3,2,1
}
println("----do...while 使用-----")
var y = 5
do {
    println(y--)    //輸出5,4,3,2,1
} while(y>0)