企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 代码范例 这里列出一些 Kotlin 中会经常用到的代码。如果你也有,可以通过在 [Github](https://github.com/JetBrains/kotlin-web-site) 上 pull 的方式分享出来。 ### 创建 DTO (POJO/POCO) ``` kotlin data class Customer(val name: String, val email: String) ``` 提供了具有下列功能的 `Customer` 类: * 所有属性的 getter (使用 `var` 的话也会有 setter) * `equals()` * `hashCode()` * `toString()` * `copy()` * 所有属性的 `component1()`, `component2()`, ... ( [数据类](data-classes.html)) ### 函数参数的默认值 ``` kotlin fun foo(a: Int = 0, b: String = "") { ... } ``` ### 过滤 list ``` kotlin val positives = list.filter { x -> x > 0 } ``` 或者可以更精炼一点: ``` kotlin val positives = list.filter { it > 0 } ``` ### 字符串插入 ``` kotlin println("Name $name") ``` ### 实例检查 ``` kotlin when (x) { is Foo -> ... is Bar -> ... else -> ... } ``` ### 遍历 map/list ``` kotlin for ((k, v) in map) { println("$k -> $v") } ``` `k`、 `v` 可以是任何类型 ### 使用范围 ``` kotlin for (i in 1..100) { ... } for (x in 2..10) { ... } ``` ### 只读的 list ``` kotlin val list = listOf("a", "b", "c") ``` ### 只读的 map ``` kotlin val map = mapOf("a" to 1, "b" to 2, "c" to 3) ``` ### 访问 map ``` kotlin println(map["key"]) map["key"] = value ``` ### 延迟属性 ``` kotlin val p: String by lazy { // 操作这个 String } ``` ### 扩展函数 ``` kotlin fun String.spaceToCamelCase() { ... } "Convert this to camelcase".spaceToCamelCase() ``` ### 创建单例 ``` kotlin object Resource { val name = "Name" } ``` ### If not null 简写 ``` kotlin val files = File("Test").listFiles() println(files?.size) ``` ### If not null 和 else 简写 ``` kotlin val files = File("Test").listFiles() println(files?.size ?: "empty") ``` ### if null 则执行某个指令 ``` kotlin val data = ... val email = data["email"] ?: throw IllegalStateException("Email is missing!") ``` ### if not null 则执行 ``` kotlin val data = ... data?.let { ... // if not null 则执行这个块 } ``` ### 返回 when 指令 ``` kotlin fun transform(color: String): Int { return when (color) { "Red" -> 0 "Green" -> 1 "Blue" -> 2 else -> throw IllegalArgumentException("Invalid color param value") } } ``` ### 'try/catch' 表达式 ``` kotlin fun test() { val result = try { count() } catch (e: ArithmeticException) { throw IllegalStateException(e) } // Working with result } ``` ### 'if' 表达式 ``` kotlin fun foo(param: Int) { val result = if (param == 1) { "one" } else if (param == 2) { "two" } else { "three" } } ``` ### 构建器风格的方法编写中返回 `Unit` ``` kotlin fun arrayOfMinusOnes(size: Int): IntArray { return IntArray(size).apply { fill(-1) } } ``` ### 单表达式函数 ``` kotlin fun theAnswer() = 42 ``` 这个等同于 ``` kotlin fun theAnswer(): Int { return 42 } ``` 还可以结合其它的形式得到更简练的代码。例如与 `when` 表达式一起: ``` kotlin fun transform(color: String): Int = when (color) { "Red" -> 0 "Green" -> 1 "Blue" -> 2 else -> throw IllegalArgumentException("Invalid color param value") } ``` ### 在一个对象上调用多个方法(`with`) ### Calling multiple methods on an object instance ('with') ``` kotlin class Turtle { fun penDown() fun penUp() fun turn(degrees: Double) fun forward(pixels: Double) } val myTurtle = Turtle() with(myTurtle) { //draw a 100 pix square penDown() for(i in 1..4) { forward(100.0) turn(90.0) } penUp() } ``` ### Java 7 的 try with 资源 ``` kotlin val stream = Files.newInputStream(Paths.get("/some/file.txt")) stream.buffered().reader().use { reader -> println(reader.readText()) } ```