Convierta la function de Scala a la function de Kotlin

Soy muy nuevo en Scala Kotlin y en mi bash de convertir algún código de scala a Kotlin solo como una forma de entender mi situación.

Una de las cuestiones con las que estoy teniendo problemas es convertir esta function de scala en una de Kotlin.

def changeXToDigit(value:String): String = { value.map { case 'X' => random.nextInt(10).toString case letter => letter }.mkString } 

Sé que no hay equivalente de mkString en Kotlin pero me imaginé algo así como

 fun changeXToDigit(value: String):String = { value.map { it -> when(it) { 'X' -> random.nextInt(10).toString else -> it } } 

podría funcionar, pero IntelliJ se queja de eso y el error me pierde un poco.

 Error:(11, 45) Kotlin: Infernetworking type is a function type, but a non-function type String was expected. Use either '= ...' or '{ ... }', but not both. 

Primero, escribe

 fun changeXToDigit(value: String): String = // no curly braces 

o

 fun changeXToDigit(value: String): String { // no equals 

como Kotlin entiende = { } como definir y devolver un cierre, no solo para agrupar una expresión como en Scala. Es por eso que el post de error dice "tipo inferido es un tipo de function".

A continuación, .mkString() Scala es como .mkString() Kotlin, aunque el separador pnetworkingeterminado de Scala es "" y el separador pnetworkingeterminado de Kotlin es ", " .

  • ¿Existe un análogo Future.sequence en kotlin?
  • ¿Es posible mezclar Scala y Kotlin en el mismo module maven?
  • ¿Se puede usar Flink con Kotlin?
  • Kotlin zipToda alternativa
  • Progtwigción funcional: cómo continuar el context para una cadena de reglas de validation
  • Herencia genérica de Kotlin
  • Forma equivalente de Scala de Rango a class personalizada
  • Kotlin: llaves de varias expresiones (o declaraciones)
  • Comstackción manual de JAR para Scala & Kotlin
  • Biblioteca Headless de una fuente para JVM y JavaScript
  • Usar varios lenguajes JVM en el mismo proyecto