首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift 3及以后的“任何”声明/实现在哪里?

问Swift 3及以后的“任何”声明/实现在哪里?
EN

Stack Overflow用户
提问于 2017-07-26 10:28:10
回答 1查看 89关注 0票数 1

Any作为标准协议(SWIFT2.2)到.?

在SWIFT3.0之前,Any被描述为“所有类型都隐式遵守的协议”,并在标准库中实现为protocol<>。

类型Any = protocol<> 所有类型隐式遵守的协议。

从斯威夫特3.0开始,它的用法和意义似乎没有变化,但在Swift不断变化的语言引用中,我再也找不到对它的任何明确的引用。

  • 在SWIFT3.0中声明/实现的Any在哪里?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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可以表示任何类型的实例,包括函数类型。

..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45324315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档