0
val test: Int.(String) -> Int = {
  plus((this))
}
        

定义这种类型时extension function,如何arguments( Here, the argument of type String)在块内使用?

像这样定义extension functions和声明的同时,只能this用吗?

4

1 回答 1

3

您可以使用以下方式访问它it

val test: Int.(String) -> Int = {
  println("this = $this")
  println("it = $it")
  42
}

fun main() {
    println("result = " + 1.test("a"))
}

这将输出

this = 1
it = a
result = 42

另一种方法是引入 lambda 参数:

val test: Int.(String) -> Int = { s ->
  println("this = $this")
  println("s = $s")
  42
}

fun main() {
    println("result = " + 1.test("a"))
}

这将输出

this = 1
s = a
result = 42
于 2021-06-28T18:45:06.623 回答