0
我想創建一個ObservableType
的擴展,但下面的代碼不會編譯。RxSwift generic'不能將類型'(_) - > [Any]'的值轉換爲期望的參數類型'(String) - > _'`
public extension ObservableType {
public func foo<C: Collection>(_ calls: @escaping (E) -> C) -> Observable<[Any]> where C.Iterator.Element: ObservableType {
return flatMap { input in Observable.zip(calls(input)) { objects in objects }
}
}
}
// compile error
Observable.just("foo")
.foo { foo in
[Observable.just(User()), Observable.just(Repo())]
}
它拋出一個錯誤:Cannot convert value of type '(_) -> [Any]' to expected argument type '(String) -> _'
我不知道問題出在哪裏。在此先感謝
我想混合類型? – akabc
@akabc我更新了答案 –
是否可以修改'foo'函數以使客戶端代碼無錯地編譯? – akabc