Any作为标准协议(SWIFT2.2)到.?
在SWIFT3.0之前,Any被描述为“所有类型都隐式遵守的协议”,并在标准库中实现为protocol<>。
类型Any = protocol<> 所有类型隐式遵守的协议。
从斯威夫特3.0开始,它的用法和意义似乎没有变化,但在Swift不断变化的语言引用中,我再也找不到对它的任何明确的引用。
Any在哪里?发布于 2017-07-26 10:28:10
Any已从标准库中删除,现在已成为关键字/内置类型
在实施时,Swift演进建议
对于Swift 3,Any已从Swift标准库中删除,并生成关键字/内置类型。它的意义和行为保持不变。
引用上述进化论建议:
现有的
Any类型表示符合零或多个协议(即所有类型)的所有类型,将成为关键字。它的意义不会改变。
引用CHANGELOG.md中用于标准库中的类型的更新
空协议组合(
Any类型)以前被定义为protocol<>。Any已从标准库中删除,现在是具有相同行为的关键字。
在另一项与实现SE-0095有关的先前提交中,我们可以发现从标准库迁移Any并将其更改为内置关键字的更改。
SE-0095用于“
&”组合语法的初始解析实现--提交定义了‘Any’关键字,实现了对使用infix‘&’组成类型的解析,并提供了一个用于转换‘protocol<>’的修复器。 ..。include/swift/AST/ASTContext.h:// Builtin类型和常用的简单类型。.+ const CanType TheAnyType;/这是“Any”,空协议组合include/swift/AST/KnownIdentifiers.def:..。标识符(自)+标识符(任意)
这个关键字现在被记录在哪里?
除了描述这种迁移的各种变更集之外,Any作为关键字的文档现在可以在语言参照系-词汇结构中找到。
关键词与标点符号 ..。
as,as,catch,.以及,微妙地,在语言参考类型的主要语法描述
一种类型的语法 ..。 类型->元类型 ->
Any型 ->Self型 ..。
最后,和以前一样(尽管现在是关键字/非stdlib类型),Any仍然被简单地描述为一种特殊类型,可以用来表示任何类型。引用语言指南式铸造
Any和的型铸造 Swift为处理非特定类型提供了两种特殊类型:
Any可以表示任何类型的实例,包括函数类型。..。
https://stackoverflow.com/questions/45324315
复制相似问题