为什么此Swift代码可以编译并无错误运行?

时间:2018-11-09 18:28:56

标签: swift

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,我希望该行在运行时崩溃。

@#$ @#是什么?

0 个答案:

没有答案