Anyone know why the following code doesn't work? ...
# announcements
e
Anyone know why the following code doesn't work?
Copy code
// 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
    }
  }