(第一篇)斯威夫特:過濾協議陣列通過比較類型
通常即時通訊能夠在這裏或其他地方尋找答案,但沒有運氣這次=(
問:在斯威夫特,你怎麼過濾數組這是一個協議類型由作爲函數參數提供的實施類型?
protocol Aprotocol {
var number:Int { get set }
}
class Aclass: Aprotocol {
var number = 1
}
class AnotherClass: Aprotocol {
var number = 1
}
var array:[Aprotocol] = [ Aclass(), AnotherClass(), Aclass() ]
func foo (parameter:Aprotocol) -> Int {
return array.filter({ /* p in p.self == parameter.self */ }).count
}
var bar:Aprotocol = // Aclass() or AnotherClass()
var result:Int = foo(bar) // should return 2 or 1, depending on bar type
也許這是所有
由於不正確的方法?!
很好,我可以看到爲什麼這樣的作品,謝謝! –