我觉得很难理解。
1:fun buildStringA节中只接受一个lambda参数,为什么B节中传递了两个参数?
2:B节的完整代码是什么?
例如
val s = buildString { aa : StringBuild -> aa.append("Hello.") } // I don't know whether it's right?
Run Code Online (Sandbox Code Playgroud)
it3: B 部分是什么?这是否it代表StringBuild?
A部分
fun buildString(builderAction: (StringBuilder) -> Unit ) : String {
val sb = StringBuilder()
builderAction(sb)
return sb.toString()
}
Run Code Online (Sandbox Code Playgroud)
B部分
val s = buildString {
it.append("Hello, ")
it.append("World!")
}
logError(s) //The result is Hello, World!
Run Code Online (Sandbox Code Playgroud)
1:fun buildString在A节中只接受一个lambda参数,为什么B节中传递了两个参数?
只有 1 个参数传递给该函数:具体来说,是builderActionof 类型(StringBuilder) -> Unit。
所以
val s = buildString {
it.append("Hello, ")
it.append("World!")
}
Run Code Online (Sandbox Code Playgroud)
相当于
val s: String = buildString(builderAction = { stringBuilder: StringBuilder ->
stringBuilder.append("Hello, ")
stringBuilder.append("World!")
// return Unit
})
Run Code Online (Sandbox Code Playgroud)
Meaningit实际上是 的未命名的单个参数(StringBuilder) -> Unit,所以它是一个StringBuilder.
| 归档时间: |
|
| 查看次数: |
3923 次 |
| 最近记录: |