最近在閑暇時(shí)間學(xué)習(xí)Kotlin,但是發(fā)現(xiàn)看一點(diǎn)過(guò)一段時(shí)間就會(huì)忘記镀虐,所謂好記性不如爛筆頭箱蟆,干脆就記錄一下所學(xué)東西。深刻記憶刮便。
1.變量
Kotlin聲明一個(gè)變量使用var關(guān)鍵字空猜。聲明一個(gè)常量使用關(guān)鍵字val。val這個(gè)與java中final類似恨旱。所以在Kotlin中我們需要注意的是盡可能的使用val辈毯。Kotlin是可以自動(dòng)判斷出字符類型的,例如下面的代碼中搜贤,var quantity = 5中quantity會(huì)被認(rèn)為是為int型的谆沃,如果想聲明一個(gè)double型的可以這樣:var quantity :Double = 5。
fun main(args: Array<String>) {
var quantity = 5
val price: Double = 20.3
val name: String = "大米"
println("單價(jià):$price")
println("數(shù)量:$quantity")
println("產(chǎn)品:$name 總計(jì):${quantity * price}")
}
需要注意的是在聲明的類型中仪芒,數(shù)字類型不會(huì)自動(dòng)轉(zhuǎn)型唁影。比如不能給Double類型的分配一個(gè)Int
val i : Int = 5;
val s : Double = i.toDouble()
2.數(shù)組
在Kotlin中一般創(chuàng)建數(shù)組直接使用arrayOf(),就可以創(chuàng)建一個(gè)數(shù)組
val arr = arrayOf("a", "b", "c",1,2,3)
基本類型數(shù)組:ByteArray,LongArray等這些類是基本類型數(shù)組,但是跟Array類沒(méi)有繼承關(guān)系掂名,但是它們有相同的屬性集夭咬。Kotlin中的數(shù)組是不能型變得,也就是說(shuō)Array<Int>不能賦值給Array<Any>
val intArr: IntArray = intArrayOf(1,2,3)
val longArr: LongArray = longArrayOf(1L,2L,3L)
val floatArr: FloatArray = floatArrayOf(1.0f,2.0f,3.0f)
val doubleArr: DoubleArray = doubleArrayOf(1.0,2.02,3.03333)
val booleanArr: BooleanArray = booleanArrayOf(false,true,false)
3.in 關(guān)鍵字
//如果存在于區(qū)間(1,Y-1)铆隘,則打印OK
if (x in 1..y-1) {
print("OK")
}
//如果x不存在于array中卓舵,則輸出Out
if (x !in 0..array.lastIndex)
print("Out")
//打印1到5
for (x in 1..5)
print(x)
//遍歷集合(類似于Java中的for(String name : names))
for (name in names)
println(name)
//如果names集合中包含text對(duì)象則打印yes
if (text in names)
print("yes")
4.函數(shù)
函數(shù)使用關(guān)鍵字fun聲明,如下代碼創(chuàng)建了一個(gè)名為say()的函數(shù)膀钠,它接受一個(gè)String類型的參數(shù)掏湾,并返回一個(gè)String類型的值
fun say(str: String): String {
return str
}
同時(shí)裹虫,在 Kotlin 中,如果像這種簡(jiǎn)單的函數(shù)融击,可以簡(jiǎn)寫為
fun say(str :String): String = str
fun <函數(shù)名>(<參數(shù)名1> : <參數(shù)1類型>, <參數(shù)名2> : <參數(shù)2類型>...) : <函數(shù)返回類型> {
函數(shù)體...
return <返回值>
}
5.const的使用
·const必須修飾val
·const 只允許在top-level級(jí)別和object中聲明