我正在寻找一种方法来创建一个类型的数组响应协议在斯威夫特3。响应协议在Swift中的类型的数组
这里是我的问题(简化的例子),我有一个协议叫做Rule
:
protocol Rule {
static func check(_ system: MySystem) -> [Inconsistency]
}
和某些类型的响应规则协议:
struct FirstRule : Rule {
static func check(_ system: MySystem) -> [Inconsistency] {
...
}
}
struct SecondRule : Rule {
static func check(_ system: MySystem) -> [Inconsistency] {
...
}
}
现在我想检查我的系统这样:
let system = MySystem()
let inconsistencies = system.check([FirstRule, SecondRule])
为了做到这一点,我只需要写一个SIM卡扩展名:
extension MySystem {
func check(_ rules : [????]) -> [Inconsistency] {
var result = [Inconsistency]()
for rule in rules {
result += rule.check(self)
}
return result
}
}
那么rules
数组的类型是什么?
当然,我希望保持规则检查静态,并不想创建实例(在这种情况下,类型将是[Rule]
,它会更容易)。
因此,如果任何人都可以提供帮助,将不胜感激。 在此先感谢。
你是不是在谈论'Rule.Type'的阵列? – matt
谢谢!我在看到您的评论之前回答了! – Zaphod
Darned有趣。我真的很想说这是不可能的。然后我意识到它不是。 :) – matt