首页 > 解决方案 > 为什么这段 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 to ObjectIdentifier(),这要求它的参数是类对象。该代码运行,并返回一个结果。如果通过Any.

@#$​​@# 是什么?

标签: swift

解决方案


推荐阅读