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))
}