Swift 4.2-类型附近的__shared属性

时间:2019-01-25 05:36:12

标签: swift

https://developer.apple.com/documentation/swift/double?changes=latest_minor 在类定义的更新版本中,我找到了NSNumber的Double的初始化方法,其附近键入了未知关键字__shared。什么意思?

1 个答案:

答案 0 :(得分:4)

__shared参数注释表示可以通过引用传递值类型参数。

对于值类型,这使我们能够在进行调用之前先删除一个副本,而将引用指向指向我们分配的内存的位置。 SIL将此约定称为in_guaranteed(间接引用,保证使用寿命)。当前,这是我们在非变异函数中传递self的方式。

它是由Ownership Manifesto引入的。

以下是所有权注释之间的区别:

  • inout:变异类似指针的值
  • __shared:不变的指针式值
  • __owned:一种写默认值的明确方法

以下是宣言的摘要:Swift Ownership Manifesto TL;DR