网站搭建公司排行榜,wordpress有广告插件下载,wordpress字体编辑,校园网站建设网Kotlin 是一门现代但已成熟的编程语言#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作#xff0c;并提供了多种方式在多个平台间复用代码#xff0c;以实现高效编程。
https://play.kotlinlang.org/byExample/01_introduction/02_Functio…
Kotlin 是一门现代但已成熟的编程语言旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作并提供了多种方式在多个平台间复用代码以实现高效编程。
https://play.kotlinlang.org/byExample/01_introduction/02_Functions
其他关于kt的博客文章如下
Kotlin学习——hello kotlin 函数function 变量 类 泛型 继承Kotlin学习——流程控制when循环range工具 kt里的equals if实现类似三元表达式的效果Kotlin学习——kt中的类数据类 枚举类 密封类以及对象Kotlin学习——kt里面的函数高阶函数 函数式编程 扩展函数和属性Kotlin学习——kt里的集合ListSetMap List集合的各种方法之Int篇Kotlin学习——kt里的集合Map的各种方法之String篇 目录 引出letrunwithapply 类似set方法also 打印日志 总结 引出 1.Kotlin标准库函数let可用于作用域和null检查 2.执行一个代码块并返回其结果。不同的是在run函数中对象是通过 this 访问的 3.with是一个非扩展函数可以简洁地访问其参数的成员在引用其成员时可以省略实例名称 4.apply在对象上执行一个代码块并返回对象本身 5.also工作原理与apply类似它执行给定的块并返回调用的对象。在块内部对象被它引用日志打印
let
Kotlin标准库函数let可用于作用域和null检查。当对对象调用时let执行给定的代码块并返回其最后一个表达式的结果。可以通过参照对象默认情况下或自定义名称在块内部访问对象。
package com.tianju.kt.scopeFuncfun customPrint(s: String) {print(s.uppercase())
}fun main() {val empty test.let {customPrint(it)it.isEmpty()}// TEST is empty falseprintln( is empty $empty)// Printing null:// Printing my string:// MY STRINGfun printNonNull(str: String?) {println(Printing \$str\:)str?.let {print(\t)customPrint(it)println()}}// FIRST : SECONDfun printIfBothNonNull(strOne: String?, strTwo: String?) {strOne?.let { firstString -strTwo?.let { secondString -customPrint($firstString : $secondString)println()}}}printNonNull(null)printNonNull(my string)printIfBothNonNull(First,Second)
}run
与let一样run是标准库中的另一个作用域函数。基本上它也是这样做的执行一个代码块并返回其结果。不同的是在run函数中对象是通过 this 访问的。当您想调用对象的方法而不是将其作为参数传递时这很有用。
package com.tianju.kt.scopeFuncfun main() {fun getNullableLength(ns: String?) {println(for \$ns\:)ns?.run {// 访问对象的成员时不使用其名称println(\tis empty? isEmpty())println(\tlength $length)this.length}}getNullableLength(null)getNullableLength()getNullableLength(some string with Kotlin)
}with
with是一个非扩展函数可以简洁地访问其参数的成员在引用其成员时可以省略实例名称。
package com.tianju.kt.scopeFuncclass Configuration(var host: String, var port: Int)fun main() {val configuration Configuration(host 127.0.0.1, port 9000)// 在引用其成员时可以省略实例名称with(configuration) {println($host:$port)}// instead of:println(${configuration.host}:${configuration.port})
}apply 类似set方法
apply在对象上执行一个代码块并返回对象本身。在块内部对象被此引用。此函数用于初始化对象非常方便。
类似java里面new 对象后进行set值
package com.tianju.kt.scopeFunc/*** 数据类*/
data class Person(var name: String, var age: Int, var about: String) {// 构造方法有默认值constructor() : this(, 0, )
}fun main() {val jake Person()println(jake)val stringDescription jake.apply {name Jakeage 30about Android developer}.toString()println(stringDescription)
}also 打印日志
also工作原理与apply类似它执行给定的块并返回调用的对象。在块内部对象被它引用因此更容易将其作为参数传递。此函数便于嵌入其他操作可以用于打印日志
package com.tianju.kt.scopeFuncdata class PersonP(var name: String, var age: Int, var about: String) {constructor() : this(, 0, )
}fun writeCreationLog(p: PersonP) {println(A new person ${p.name} was created.)
}fun main() {val jake PersonP(Jake, 30, Android developer).also {writeCreationLog(it)}println(jake)
}总结
1.Kotlin标准库函数let可用于作用域和null检查 2.执行一个代码块并返回其结果。不同的是在run函数中对象是通过 this 访问的 3.with是一个非扩展函数可以简洁地访问其参数的成员在引用其成员时可以省略实例名称 4.apply在对象上执行一个代码块并返回对象本身 5.also工作原理与apply类似它执行给定的块并返回调用的对象。在块内部对象被它引用日志打印