kotlin學習相關鏈接
在線學習
Kotlin 官方文檔
中文站(更新到 1.1):https://www.kotlincn.net/
網址(更新到 1.0.3):http://tanfujun.com/kotlin-web-site-cn/
Kotlin 中文論壇:https://www.kotliner.cn/
《Kotlin for android developers》中文版翻譯
語言學習網址:RUNOOB備註:裏面的虛擬機模擬適合小demo調試,程序太大還是建議到AS中。
1、銷燬聲明
/**
* 此示例引入一個聲明,我們稱之爲解構聲明
* 它一次創建多個變量,任何東西都可以在右邊
* 銷燬聲明時,只需要聲明的組件數量
*/
fun main(args: Array<String>) {
val pair = Pair(1, "one")
val (num, name) = pair
println("num = $num, name = $name")
}
class Pair<K, V>(val first: K, val second: V) {
operator fun component1(): K {
return first
}
operator fun component2(): V {
return second
}
}
2、數據類
/**
* 數據類通過組件函數,爲每一個屬性都進行聲明
* 在主要的構造函數中自動生成
*/
data class User(val name: String, val id: Int)
fun getUser(): User {
return User("Alex", 1)
}
fun main(args: Array<String>) {
val user = getUser()
println("name = ${user.name}, id = ${user.id}")
// or
val (name, id) = getUser()
println("name = $name, id = $id")
// or
println("name = ${getUser().component1()}, id = ${getUser().component2()}")
}
3、map的遍歷
/**
* Kotlin標準庫提供Map.Entry的組件功能
*/
fun main(args: Array<String>) {
val map = hashMapOf<String, Int>()
map.put("one", 1)
map.put("two", 2)
for ((key, value) in map) {
println("key = $key, value = $value")
}
}
4、數據類
/**
*數據類可以自動生成 toString(), equals(), hashCode() and copy()等功能方法
*/
data class User(val name: String, val id: Int)
fun main(args: Array<String>) {
val user = User("Alex", 1)
println(user) // toString()
val secondUser = User("Alex", 1)
val thirdUser = User("Max", 2)
println("user == secondUser: ${user == secondUser}")
println("user == thirdUser: ${user == thirdUser}")
// copy() function
println(user.copy())
println(user.copy("Max"))
println(user.copy(id = 2))
println(user.copy("Max", 2))
}