Почему этот код Swift компилируется и запускается без ошибок? - PullRequest
0 голосов
/ 09 ноября 2018
struct AStruct {
    var aValue: Int
}
let aStruct = AStruct(aValue: 3)
let aClass = aStruct as AnyObject  //Why does this line compile?
let ident = ObjectIdentifier(aClass)  //`ObjectIdentifier()` requires a reference object, but this code works

В приведенном выше коде я приведу структуру, которая является типом значения, к AnyObject (для объектов класса), и это работает.

Я ожидаю ошибки компиляции в этой строке.

В следующей строке я передаю структуру, приведенную к AnyObject к ObjectIdentifier(), что требует, чтобы ее параметр был объектом класса.Этот код выполняется и возвращает результат.Я ожидаю, что эта строка потерпит крах во время выполнения, если ей будет передано Any.

Что за @ # $ @ #?

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