我为此代码收到此错误Missing return in a function expected to return "User"
:
var winner : User? {
if player1TotalScore > player2TotalScore {
return player1
} else if player1TotalScore == player2TotalScore {
return nil
}
}
最令人好奇的是,我基本上做了几行同样的事情:
var opponent : User! {
if player1.isEqual(User.currentUser()) {
return player2
} else {
return player1
}
}
我在第一段代码中做错了什么?
答案 0 :(得分:4)
如果player1TotalScore
小于player2TotalScore
,会发生什么情况。它落在if
条件下,没有返回值。你必须处理每一个案件,而你在这里错过了一个案例。这就是else
有效的原因,它处理==
和<
个案。
答案 1 :(得分:0)
如果是player1TotalScore&lt; player2TotalScore你的代码不会返回任何值。
答案 2 :(得分:0)
您错过了最后一次else
声明
var winner : User? {
if player1TotalScore > player2TotalScore {
return player1
} else if player1TotalScore == player2TotalScore {
return nil
} else {
/// return player2 ?
}
}
没有最后一个else
获胜者,不返回任何内容
希望这能帮到你!