代码之家  ›  专栏  ›  技术社区  ›  Duncan C

为什么这段Swift代码编译和运行时没有错误?

  •  1
  • Duncan C  · 技术社区  · 7 年前
    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 (对于类对象)并且它是有效的。

    我预计这一行会出现编译错误。

    在下一行中,我将传递结构,cast to AnyObject to ObjectIdentifier() ,这要求它的参数是类对象。该代码运行并返回一个结果。我预计,如果该行被传递一个错误,它将在运行时崩溃 Any .

    0 回复  |  直到 7 年前