2015-08-02 3 views
0

учу с учебником для игры приложения и есть строка коды, я не понял, что это выглядит, как будто это тип кортежЧто означает эта строка кода для оператора for?

это мой код:

var algorithmResult = algorithm(value: value) 
 func rowCheck(#value: Int) -> (location: String, pattern: String)? { 
     var acceptableFinds = ["011", "101", "110"] 
     var findFunc = [checkTop, checkBottom, checkMiddleAcross, checkRight, checkMiddleDown, checkLeft, checkDiagLeftRight, checkDiagRightLeft] 
     for algorithm in findFunc { 
var algorithmResult = algorithm(value: value) 

      if (find(acceptableFinds, algorithmResult.pattern) != nil) { 
       return algorithmResult 
      } 
     } 
     return nil 
    } 

ответ

1

В:

var algorithmResult = algorithm(value: value) 

algorithm представляет собой один из элементов в массиве findFunc (как определено в for algorithm in findFunc).

От имени, я предполагаю, что каждый из этих элементов является функцией. Эти функции передаются value, и результат функции сохраняется в algorithmResult.

Вот аналогичный пример. Создайте две функции:

func add(operand : Int) -> Int { 
    return operand + operand 
} 

func multiply(operand : Int) -> Int { 
    return operand * operand 
} 

хранить их в массиве:

let funcs = [add, multiply] 

Называйте их в цикле:

for function in funcs { 
    let x = function(5) 
    print(x) 
} 

Печатается:

10 
25 
0

Он применит каждую функцию от findFunc массива к значению, которое было передано в rowCheck функции.

Смежные вопросы