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
,我希望该行在运行时崩溃。
@#$ @#是什么?