Kotlin:编程正在打印Kotlin.unit

Kotlin:编程正在打印Kotlin.unit,kotlin,Kotlin,我的Kotlin类将运行,但它会打印出单词:Kotlin.Unit。我需要改变什么 fun main(args: Array<String>) { var myDuck = Duck() println(myDuck.quack()) } class Duck() { fun quack () { println("Quack, Quack, Quack") } } fun main(args:Array){ va

我的Kotlin类将运行,但它会打印出单词:Kotlin.Unit。我需要改变什么

fun main(args: Array<String>) {
    var myDuck = Duck()
    println(myDuck.quack())
}
class Duck() {
    fun quack () {
        println("Quack, Quack, Quack")
    }
}
fun main(args:Array){
var myDuck=Duck()
println(myDuck.quack())
}
鸭类(){
庸医{
println(“嘎嘎,嘎嘎,嘎嘎”)
}
}

这是因为打印的是不返回任何值的函数的返回类型。如果您熟悉其他语言,这与使用
void
返回类型相同

在kotlin中,没有返回类型的函数返回一个类型,因此当您打印
Duck::quack
的返回值时,您正在打印
单位的字符串值

最简单的解决方案是不打印
Duck::quack
的返回值;但是,如果希望
prinlt
打印
Duck::quak
的返回值,则需要返回一个有用的值。例如:

class Duck(){
fun-quack():字符串{
返回“嘎嘎,嘎嘎,嘎嘎”
}
}
趣味主线(args:Array){
var myDuck=Duck()
println(myDuck.quack())
}
或者更习惯地说:

class Duck(){
val-quack:String=“嘎嘎,嘎嘎,嘎嘎”
}
趣味主线(args:Array){
var myDuck=Duck()
println(myDuck.quack)
}
该打电话了

    myDuck.quack() 
威奇已经在里面印过了。调用println(myDuck.quack())打印myDuck.quack的类型,因为它不返回任何值。

1.如果不指定类型,则打印“kotlin.Unit”

fun main(args: Array<String>) {
    var myDuck = Duck()
    println(myDuck.quack())
}
class Duck():String {
    fun quack () {
        return "Quack, Quack, Quack"
    }
}
fun main(args:Array){
var myDuck=Duck()
println(myDuck.quack())
}
类Duck():字符串{
庸医{
返回“嘎嘎,嘎嘎,嘎嘎”
}
}

也简称为:

fun main() {        
        println(Duck.quack())
    }

class Duck() {
    fun quack () = "Quack, Quack, Quack"
    }

只需调用myDuck.quack()而不是println(myDuck.quack()),返回类型应该是
:type
,而不是
->type
,正如您在中编写的那样rust@Deadbeef哎呀,你的权利,应该得到解决。谢谢!我想您的意思是指定
quack()
的返回类型?
Duck
作为
String
在这里没有多大意义。。。