2
ジェネリック関数のクロージャに述語を渡している間に、私はエラーが発生します。どうすればこの問題を解決できますか?この場合、クロージャーで述部を正しく渡すにはどうすればよいですか?
func find <T: IteratorProtocol> (generator : T, predicate: (T.Element) -> Bool) -> T.Element? {
var gen = generator
while let x = gen.next() {
if predicate(x) {
return x
}
}
return nil
}
var nums:[Int] = [2,3,5,6]
エラー:は型の値に変換することはできません、私は次のように閉鎖を変更する場合 - - '>ブール(_')
let get = find(generator: nums){ (x:Int) -> Bool in
return x <= 4
}
予想引数の型に '(INT)>ブール' を、エラーは私がいる場合
let get = find(generator: nums) {
$0 <= 4
}
'< =' 演算子の あいまいな使用であり、値をIntにキャストするエラー:ジェネリックパラメータ 'T'を推論できませんでした。
let get = find(generator: nums) {
let b = $0 as Int
return b <= 4
}
'nums'宣言を提示してください – fnc12