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
.
Что за @ # $ @ #?