2017-06-12 8 views
1

私はclosures.Itのためのインターネットからのコードの下で基本的に数の範囲の合計を計算しました。クロージャを操作しますか?

func sum(from: Int, to: Int, f: (Int) -> (Int)) -> Int { 
    var sum = 0 
    for i in from...to { 
     sum += f(i) 
    } 
    return sum 
} 

それを呼び出すために私たちは誰もがこれが動作しているかを私に説明.Canそれがf(i)書かれている?ループの場合と同様に、この

sum(from: 1, to: 10) { (num) -> (Int) in 
return num 
} 

のようなコードを書きますか

+0

swiftのクローズ:https://iosdevcenters.blogspot.com/2016/09/how-can-i-declare-closure-in-swift.html –

答えて

0

つまり、trailing closureという構文です。 trailing closure構文の使用方法の詳細については、google trailing closureをご覧ください。上の例のように、Intを受け取り、Intを返しますが、trailing closure syntaxで書かれた関数であるf: (Int) -> (Int)があります。上の例では、機能はidentityとして機能しています。私。 1を指定すると、1などが返されます。

関連する問題