函数Swift中缺少返回

时间:2015-10-14 21:17:29

标签: swift

我为此代码收到此错误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
    }
}

我在第一段代码中做错了什么?

3 个答案:

答案 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获胜者,不返回任何内容

希望这能帮到你!