gpt4 book ai didi

快速使用 AnyClass 对象与 as?

转载 作者:行者123 更新时间:2023-11-28 08:33:07 26 4
gpt4 key购买 nike

我想这样做:

let myClass: AnyClass = functionReturningClass() // ex. String.self
if let myObject = functionReturningObject() as? myClass { ...

作为? myClass 无法编译(“myClass 不是类型”)。我能做什么?

最佳答案

不幸的是,这是不可能的——as 必须在编译时知道它要转换成的类型。您不能向 as 提供变量类型。如果您必须强制转换,那么您只能使用在编译时工作的泛型和重载等功能。

想一想——编译器应该允许您在生成的 myObject 上调用哪些方法?不知道 myClass 的运行时值是不可能说的。因此,这是行不通的。

您仍然可以从 functionReturningObject() 返回子类。您仍然可以将它们转换为不同的类型。您只是无法决定在运行时将它们动态转换为哪种类型。

关于快速使用 AnyClass 对象与 as?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38446684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com