我正试图在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
作为它的结果。