Swift返回方法中的bool

时间:2016-06-01 09:25:01

标签: swift

我已经制作了这个方法:

func checkScore(player: Int) -> Bool {

        var checkedFields: [Int] = []
        var won: Bool = false

        for var i = 0; i <= 9; i += 1 {

            if(winningCombinations[i] == player) {
                checkedFields.append(i)
            }

        }

        for value in winningCombinations {

            var hits = 0

            for n in checkedFields {

                if value.contains(n){
                    hits += 1
                }

            }

            if hits == 3 {
                won = true
            }

        }

        return won
    }

但是当我尝试构建它时,一切都变白了,构建崩溃了。我在这里做错了吗?我传递的值如下:

 if self.checkScore(player) {
                print("Won!")
    }

(我看不出错误信息!)

1 个答案:

答案 0 :(得分:1)

您的func checkScore(player: Int)接受了Int类型的播放器。

在您的代码中,您还会说:if(winningCombinations[i] == player),这意味着您希望数组winningCombinations中的元素也属于Int

类型

然后你说

for value in winningCombinations {
var hits = 0

            for n in checkedFields {

                if value.contains(n){

如果value是winsCombination中的元素,则表示value为int ..你怎么能说value.contains(n)。 Int无法执行包含操作。数组可以。