一尘不染

在Swift中什么是“非标称类型”?

swift

当尝试扩展非传统的“类型”(如(Int, Int)或)时,我看到此错误Any

非标称类型“任何”均不能扩展

那么,什么使类型非标称呢?什么是一个非标称型等之间的差异Any(Int)和常规标称型样Int


阅读 201

收藏
2020-07-07

共1个答案

一尘不染

这有点猜测(编辑:这是错误的,请看),但是这里是:

Any是协议,而不是实际类型。“标称”一词意味着命名(基于词的词根)。

所以您不能扩展,Any因为它是一个协议,而不是实际的类型,并且您不能扩展,(Int, Int)因为它只是一个元组文字,也不是您可以通过名称指定的实际类型。


更新:

当然,您可以扩展协议。Any不是协议,而是(令人震惊的)非标称类型,这是另外一些东西。

2020-07-07