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