0

我观察到可以AnyObject在 Swift 中将下标运算符与实例一起使用。例如:

let x: AnyObject = NSDictionary()

print(type(of: x["y"]))

此代码产生以下输出:

ImplicitlyUnwrappedOptional<Optional<Any>>

第一部分是有道理的,因为在 的实例上调用任何方法都AnyObject定义为表现得像一个隐式展开的可选项。输出的其余部分表明下标运算符本身被定义为 return Optional<Any>,这也是有道理的,因为它与字典实例的下标行为相似。

我认为这是设计使然,但我无法验证它。有谁知道下标运算符的行为AnyObject是否记录在任何地方?

4

0 回答 0