我不明白这个错误消息 具有块体("{...}")的函数中所需的"返回"表达式)。我该怎么办?



我正试图在Kotlin中编译此代码,但我不断获得此错误信息"在具有块体的函数中需要'返回'表达式('{…}'"有谁能告诉我是什么问题吗?

abstract class SentenceVerifier(private var subject: String, private var verb: String, private var objectt: String,) {

abstract val resourse1: String
abstract val resourse2: String 
abstract val resourse3: String 


fun isSentenceStructureCorrect(): String {
if (subject == resourse1) {
println("Great job! You're correct!")
} else {
println("Sorry, that's not correct. Try again.")
}
if (verb == resourse2) {
println("Great job! You're correct!")
} else {
println("Sorry, that's not correct. Try again.")
}
if (objectt == resourse3) {
println("Great job! You're correct!")
} else {
println("Sorry, that's not correct. Try again.")
}
}  

}

让我们分析一下错误消息:

"具有块体的函数中所需的'返回'表达式">

带有块体的函数;返回的String具有以下形式:

fun foo(): String {
// block body returning something
return "something"
}

没有返回值的块体函数是这样的:

fun foo() {
// block body doing something
println("something")
}

为完整起见,带表达式体的函数具有以下形式:

fun foo(): String = "something"

你的函数显然有一个"块体"。

错误信息的第一部分是:

需要一个'return'表达式

这应该从字面上理解:你需要一个return在你的函数中实际返回一些东西,因为它定义了一个String作为它的结果。

最新更新