Swift: проверить, не является ли объект экземпляром класса - PullRequest
0 голосов
/ 14 октября 2018

Проверка, является ли объект "is-a" класс простым и чистым -

if someObject is MyClass {...}

Однако, единственный способ, который я нашел для инвертирования, кажется уродливым -

if !(someObject is MyClass) {...}

скобки требуются, потому что в противном случае ! «попытался» отрицать объект.

Я знаю, что это не обычный случай использования, но все же.Есть ли другой способ спросить это?

1 Ответ

0 голосов
/ 14 октября 2018

Вы можете сделать это следующим образом:

if type(of: someObject) != MyClass.self { }

Вы можете определить пользовательский оператор:

infix operator !!

func !! <T,U> (lhs: T, rhs: U.Type) -> Bool {
    return !(lhs is U.Type)
}

"Hello" !! Int.self    //true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...