String in Kotlin?-6ren"> String in Kotlin?-transform 的定义很有趣 (String) -> String 有人告诉我 {"456"} 是 transform 的有效值,{"456"} 的 transform: (String) -> -6ren">
gpt4 book ai didi

android - 什么是 {"456"的完整代码} 转换 : (String) -> String in Kotlin?

转载 作者:太空宇宙 更新时间:2023-11-03 13:08:31 26 4
gpt4 key购买 nike

transform 的定义很有趣 (String) -> String

有人告诉我 {"456"}transform 的有效值,{"456"}transform: (String) -> String 的完整代码是什么?

代码 A 是否正确?

代码A

val aa="123".myAdd{a:String -> "456"}

代码B

val aa="123".myAdd{"456"}

fun String.myAdd(transform: (String) -> String ) = this + transform(this)

最佳答案

使用您的示例代码,让我尝试解释它在做什么。

val result = "123".add { it -> "456" }

fun String.add(transform: (String) -> String ) {
this + transform.invoke(this)
}

首先,您要创建一个 String“123”,并在其上调用 lambda。现在,在您的 lambda 中, 将是这个“123”字符串。

通常,您会以某种方式修改此输入,例如 List.Sort(),但实际上您是在丢弃该输入并仅返回“456”。 lambda 的最后一行是返回值。

例如,我们可以采用“123”输入,并递增每个数字。这会将您的 String 转换为字符的 List,然后递增每个字符,然后将它们重新组合在一起。

val result = "123".add { it -> it.map { it.inc() }.joinToString(separator = "") }

lambda 接受一个 String,“123”,并应用您的转换并返回一个新的 String。 ((String) -> String) 我认为应该采用“123”并返回“234”,它将附加到“123”。 “123234”。

这是否有助于解释 lambda (String) -> String 的工作原理?

关于android - 什么是 {"456"的完整代码} 转换 : (String) -> String in Kotlin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51549724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com