4
Wer weiß, warum der folgende Code nicht funktioniert?Kotlin Unwrapping Funktion Compiler Fehler
private fun wrapLogIfNeeded(buildMessageOnCurrentThread: Boolean, log:() -> String):() -> String
return if(buildMessageOnCurrentThread) {
val message = log() // Type mismatch: Required() -> String Found: Unit
{ message }
}
else {
log
}
}
Aber das tut:
private fun wrapLogIfNeeded(buildMessageOnCurrentThread: Boolean, log:() -> String):() -> String
return if(buildMessageOnCurrentThread) {
val message = lazy { log() }.value
{ message }
}
else {
log
}
}
Als Alternative zu einem Semikolon, können Sie das Lambda ersetzen können '{Nachricht}' mit einer [anonymen Funktion] (https: // kotlinlang. org/docs/reference/lambdas.html # anonyme Funktionen): 'fun() = message'. – mfulton26