我想使用SwiftHamcrest斯威夫特沒有找到正確的類型
我有一個函數
func equalToArray<T, S>(_ vector:Array<S>) -> Matcher<T> {
let v: Matcher<T> = Hamcrest.hasCount(16)
return v
}
這給出了一個錯誤
Error:(16, 31) 'hasCount' produces 'Matcher<T>', not the expected contextual result type 'Matcher<T>'
SwiftHamcrest有兩個hasCount功能
public func hasCount<T: Collection>(_ matcher: Matcher<T.IndexDistance>) -> Matcher<T>
public func hasCount<T: Collection>(_ expectedCount: T.IndexDistance) -> Matcher<T>
爲什麼我的代碼抱怨不是它返回所需的相同類型。
作爲一個說明,可能是一個不同的問題,我不得不添加Hamcrest。在hasCount方法調用之前,否則它試圖匹配到第一個函數
我缺少什麼類型?
看起來你想返回一個'Matcher <[S]>'而不是'Matcher'(然後刪除通用佔位符'T')。雖然我不確定'vector'參數的用途。 –
Hamish
@Hamish - 這是一個減少案例,我想要其他匹配器 - 所以是在這個例子中不需要參數更全面的例子是func equalToArray(_ vector:Array
) - > Matcher { \t設v:匹配器 = Hamcrest.hasCount(vector.count) \t回報v } –
Mark