나는 매개 변수를 복용 람다를 반환 Kotlin 함수를 작성하려고 해요. 나는이 작업을 수행하려면 다음과 같은 코드를 사용하려고 해요 :Kotlin "예상 매개 변수가"인라인 람다를 반환하려고하면
fun <T> makeFunc() : (T.() -> Unit) {
return { t: T ->
print("Foo")
}
}
주 : 실제 프로그램에서 함수가 더 복잡하고 t
를 사용합니다.
Kotlin은 이것을 무효로 지정하고 t: T
에 '예상 매개 변수 없음'오류를 표시합니다.
그러나 변수에이 람다 할당 먼저 거부하지 않고 잘 작동 :
fun <T> makeFunc() : (T.() -> Unit) {
val x = { t: T ->
print("Foo")
}
return x
}
이 두 조각이 동일한 것, 왜이 경우? return
구문이 람다가 아닌 다른 것으로 해석 된 후 중괄호가 사용됩니까?
또한 IntelliJ는 변수의 값이 인라인 될 수 있다고 알려주지 만 오류가 발생하는 것으로 나타납니다.