Swift 4.2 - атрибут __shared рядом с типом - PullRequest
0 голосов
/ 25 января 2019

https://developer.apple.com/documentation/swift/double?changes=latest_minor В обновленной версии определения класса я нашел метод init для Double с NSNumber рядом с неизвестным ключевым словом __shared.Что это значит?

1 Ответ

0 голосов
/ 25 января 2019

Примечание к параметру __shared означает, что параметр типа может быть передан по ссылке.

Для типов значений это позволяет нам исключить копию перед выполнением вызова и вместо этого передать ссылку, указывающую прямо на выделенную нами память. SIL называет это соглашение in_guaranteed для (косвенная ссылка с гарантированным временем жизни). В настоящее время мы передаем себя в неизменяемых функциях.

Он был представлен Манифестом собственности .

Вот разница между аннотациями собственности:

  • inout: значение, аналогичное изменяющемуся указателю
  • __shared: неизменяемое значение, похожее на указатель
  • __owned: явный способ записи значения по умолчанию

Вот краткое изложение манифеста: Swift Ownership Manifesto TL; DR .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...