我观察到可以AnyObject
在 Swift 中将下标运算符与实例一起使用。例如:
let x: AnyObject = NSDictionary()
print(type(of: x["y"]))
此代码产生以下输出:
ImplicitlyUnwrappedOptional<Optional<Any>>
第一部分是有道理的,因为在 的实例上调用任何方法都AnyObject
被定义为表现得像一个隐式展开的可选项。输出的其余部分表明下标运算符本身被定义为 return Optional<Any>
,这也是有道理的,因为它与字典实例的下标行为相似。
我认为这是设计使然,但我无法验证它。有谁知道下标运算符的行为AnyObject
是否记录在任何地方?