eygraber
04/06/2017, 9:27 PM// this gives a compiler error
private fun wrapLogIfNeeded(buildMessageOnCurrentThread: Boolean, log: () -> String): () -> String {
return if(buildMessageOnCurrentThread) {
val message = log() // Type mismatch: Required () -> String Found: Unit
{ message }
}
else {
log
}
}
// this works
private fun wrapLogIfNeeded(buildMessageOnCurrentThread: Boolean, log: () -> String): () -> String {
val lazyLog = lazy { log() }
return if(buildMessageOnCurrentThread) {
val message = lazyLog.value
{ message }
}
else {
log
}
}