Skip to content

常用写法

本文综合了一些Kotlin中常见的用法。相当于是小贴士集合。文中的代码写法不一定是最好的。请根据项目实际需要来使用。

方法参数的默认值

可以给方法的参数指定默认值

fun someFunction(a: Int = 0, b: String = "") { /* 方法实现 */ }

过滤列表

找出列表中满足某个条件的所有元素。使用filter方法。其中x是自己定义的参数名。

val list = Arrays.asList(1, 2, 3, 4, 5, 6, 7)
val bigger = list.filter { x -> x > 5 }
println(bigger) // [6, 7]

或者在filter中用it

val list = Arrays.asList(1, 2, 3, 4, 5, 6, 7)
val bigger = list.filter { it > 2 }
println(bigger) // [3, 4, 5, 6, 7]

检查某个元素是否在集合里

使用in

val nameList = Arrays.asList("Tom", "Rust Fisher", "Jerry")
if ("Rust Fisher" in nameList) {
    println("Rust Fisher在列表中")
}
if ("David" !in nameList) {
    println("David不在列表中")
}

String插值

$把String变量插入字符串里

val firstName = "Rust"
val lastName = "Fisher"
println("$firstName $lastName")

只可读的列表

只能读,不能写的列表。用listOf方法。

val readOnlyList = listOf("a", "b")
上面得到的readOnlyList是没有add相关方法的。

只可读的map

使用mapOf方法得到只读的map。

val map = mapOf("a" to 1, "b" to 2, "c" to 3)

while循环读写流

流读写的时候,我们经常使用while来处理。

Java类似如下写法

int len = 0;
while((len = inputStream.read(tmp)) != -1) { /* 流操作 */ }

kotlin中,使用also

while (((inputStream.read(tmp)).also { len = it }) != -1) { /* 流操作 */ }

作者: RustFisher
联系: rf.cs@foxmail.com
博客: rustfisher.com | RustFisher cnblog
示例: AndroidTutorial Gitee, Tutorial Github
链接: https://www.an.rustfisher.com/kotlin/basic/idioms/
一家之言,仅当抛砖引玉。如有错漏,还请指出。