0
A
답변
4
compute
함수에 넘기는 람다는 Unit?
을 반환해야합니다. 지금은 Log.e()
호출의 결과를 반환하며 출력에 기록 된 바이트 수를 나타내는 Int
을 반환합니다. 또한,
fun test() {
compute { foo ->
Log.e("kotlin issue", "solved")
Unit
}
}
Unit
에 반환 값을 변환하는 다른 방법이있는 곳 this question를 참조하십시오 당신이 원하는 모든 람다의 메시지를 기록하는 경우, 당신은 명시 적으로 같은 그것의 끝에서 Unit
를 반환 할 수 있습니다 논의했다.
1
Android Log.e
은 body
매개 변수가 Unit?
이어야 함을 지정하는 매개 변수 인 Int
을 반환합니다.
fun myCompute(body: (foo: String) -> Any?) { compute { body(it); null } }
: 호출을 변경
compute { foo -> Log.e("kotlin issue", "solved"); null }
을 또는 계산을 포장 :
fun compute(body: (foo: String) -> Unit) { body.invoke("problem solved") }
또는 변경 호출과 같이 :
당신은 compute
메소드 서명과 같이 변경하거나 필요
다음 예상대로 호출하십시오.
myCompute { foo -> Log.e("kotlin issue", "solved") }
왜 'Unit'을 사용합니까? 나는이 유형을 사용할 이유가 있다고 생각하지 않는다. –