简单的kotlin示例在打印中缀函数结果时打印kotlin.Unit

lop*_*hen 2 kotlin

我有以下非常简单的kotlin代码来演示infix函数包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")
}
Run Code Online (Sandbox Code Playgroud)

而预期的结果是

Hello  x_x world x_x
Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)

下面的实际结果,是什么导致程序打印kotlin.Unit?

 Hello  x_x world x_x
 kotlin.Unit
 Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)

yol*_*ole 5

您的程序中有两个打印语句.x_x函数内部的一个打印"Hello world"字符串,并main打印出x_x函数的返回值.该函数没有任何return语句或声明的返回类型,因此Kotlin推断Unit其返回类型.该Unit类型具有单个值,kotlin.Unit这是您的程序打印的值.