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.

  • ¿Cómo crear una nueva list de anteras en kotlin?
  • Cómo ejecutar algún código cuando Gradle está construyendo las testings
  • Android support library 27, Fragment update?
  • Invocar methods en interfaces con generics
  • El selector común Kotlin anko no funciona como en los ejemplos proporcionados
  • Desliza para actualizar para actualizar los datos
  • no puede resolver la reference a los methods
  • Beneficios de LINQ sobre el método funcional chaines
  • ¿Cómo agrupar elementos del Arraylist of time en HashMap en Kotlin?
  • Clase de datos de SpringBoot + Jackson + Kotlin: annotations de campo ignoradas
  • ¿Cómo configuro un ícono (dibujable) para un button en anko?