Kotlin 是一门现代但已成熟的编程语言,旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作,并提供了多种方式在多个平台间复用代码,以实现高效编程。
其他关于kt的博客文章如下:
1.Kotlin标准库函数let可用于作用域和null检查;
2.执行一个代码块并返回其结果。不同的是,在run函数中,对象是通过 this 访问的;
3.with是一个非扩展函数,可以简洁地访问其参数的成员:在引用其成员时可以省略实例名称;
4.apply在对象上执行一个代码块,并返回对象本身;
5.also工作原理与apply类似:它执行给定的块并返回调用的对象。在块内部,对象被它引用,日志打印;
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")
}
与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是一个非扩展函数,可以简洁地访问其参数的成员:在引用其成员时可以省略实例名称。
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在对象上执行一个代码块,并返回对象本身。在块内部,对象被此引用。此函数用于初始化对象非常方便。
类似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 = "Jake"age = 30about = "Android developer"}.toString()println(stringDescription)
}
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类似:它执行给定的块并返回调用的对象。在块内部,对象被它引用,日志打印;
本文发布于:2024-01-31 04:55:45,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170664814525683.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |