message: String?
указывает, что message
может быть или не быть null
.
Поскольку ваша функция maybeWriteMessage
имеет значение по умолчанию null
для message
, и вы звоните maybeWriteMessage()
без указания message
- значение по умолчанию (null
) будет использоваться при вызовеwriteMessage(message!!)
.
Как написано в документации , !!
-оператор генерирует исключение, когда значение равно null
.
Один из способов запуска writeMessage
безопасно будет использовать .let
:
fun maybeWriteMessage(message: String? = null) {
message?.let { nonNullMessage ->
writeMessage(nonNullMessage)
}
}