Из другого вопроса на SO, касающегося тестирования соответствия протокола, это решение ...
public class Foo<TItem> {
final public var items:[TItem] = [] {
didSet{
// This is allowed
if TItem.self is SomeProtocol.Type {
}
else{
}
}
}
}
Однако из-за собственных требований это не разрешено ...
public class Foo<TItem> {
final public var items:[TItem] = [] {
didSet{
// This is NOT allowed
if TItem.self is Equatable.Type {
...update based on eqality...
}
else{
...process en masse since we can't check for equality...
}
}
}
}
Итак, как мне написать вышеприведенное, чтобы я мог проверить на уравновешенное соответствие и обработать его соответствующим образом?