El ejemplo simple de kotlin imprime kotlin.Unit al imprimir el resultado de la function infijo

Tengo el siguiente código de kotlin realmente simple para el package de function infix de demostración com.lopushen.demo.presentation

fun main(args: Array<String>) { print("Hello " x_x "world") } infix fun String.x_x(s: String) { println("$this x_x $s x_x") } 

Y el resultado esperado es

 Hello x_x world x_x Process finished with exit code 0 

Resultado real a continuación, ¿qué causa que el progtwig imprima kotlin.Unit?

  Hello x_x world x_x kotlin.Unit Process finished with exit code 0 

Usted tiene dos declaraciones impresas en su progtwig. El que está dentro de la function x_x imprime la cadena "Hello world", y el que está en la parte main imprime el valor de retorno de la function x_x . La function no tiene ningún enunciado de return ni un tipo de devolución declarada, por lo que Kotlin infiere a Unit como su tipo de devolución. El tipo de Unit tiene un único valor, kotlin.Unit , que es lo que imprime tu progtwig.

  • Retrofit 2, Rx 2 y llamadas asincrónicas
  • Dokka javadoc jar no funciona con Intellij IDE
  • Instancia de Kotlin KClass dentro de la function de extensión
  • Funciones locales acceden a variables principales con el mismo nombre
  • Analizando un object json con un campo dynamic en Kotlin
  • Cómo acceder a una vista desde el layout especificado en headerLayout de NavigationView usando Kotlin en Android
  • ¿Cómo encontrar methods con una anotación en una class?
  • Cómo convertir un adaptador tipo Gson a un adaptador de tipo Klaxon
  • ¿Puedo extender, en Java, una class de delegación de Kotlin?
  • Instanciación de una matriz genérica en Kotlin
  • Cancelar la tarea reemplazada en ThreadPool en Java / Kotlin