Android Kotlin vararg:用于一个简单函数,它返回一些垃圾

Android Kotlin vararg:用于一个简单函数,它返回一些垃圾,android,kotlin,Android,Kotlin,因此,我有一个简单的问候功能,我从一个教程复制 fun sayHello(greeting:String, vararg itemsToGreet:String){ itemsToGreet.forEach { itemToGreet -> println("$greeting $itemsToGreet") } } fun main() { val interestingThings = arrayOf("K

因此,我有一个简单的问候功能,我从一个教程复制

    fun sayHello(greeting:String, vararg itemsToGreet:String){
    itemsToGreet.forEach { itemToGreet ->
        println("$greeting $itemsToGreet")
    }
}

fun main() {
    val interestingThings = arrayOf("Kotlin" , "Programming", "Free Hotspot")
    sayHello("Hi" , *interestingThings)
}
预期:

Hi Kotlin
Hi Programming
Hi Free Hotspot
返回:

Hi [Ljava.lang.String;@7291c18f
Hi [Ljava.lang.String;@7291c18f
Hi [Ljava.lang.String;@7291c18f

你有一个小的打字错误,而不是

println("$greeting $itemsToGreet")
应该是

println("$greeting $itemToGreet") *
因此,现在每次都要打印出没有字符串表示的数组,这就是垃圾


*如果您没有发现它,那么区别在于
项的复数形式