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 ", " .

  • Scala require () equivalente en Kotlin
  • ¿Existe un análogo Future.sequence en kotlin?
  • Usar varios lenguajes JVM en el mismo proyecto
  • Herencia genérica de Kotlin
  • Comstackción manual de JAR para Scala & Kotlin
  • Companion se beneficia de la posibilidad de implementar interfaces
  • Clase de Json a Kotlin Data
  • Forma equivalente de Scala de Rango a class personalizada
  • ¿Se puede usar Flink con Kotlin?
  • Kotlin zipToda alternativa
  • La creación de Gradle falló con Kotlin, Scala y Java