Как я могу проверить тип (не экземпляр) для Equatable? - PullRequest
0 голосов
/ 04 октября 2018

Из другого вопроса на 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...
            }
        }
    }
}

Итак, как мне написать вышеприведенное, чтобы я мог проверить на уравновешенное соответствие и обработать его соответствующим образом?

...