Swift

Swift5で実装予定のOwnershipオーナーシップとは

メリット

メモリ管理をより高度に制御可能

以下が一部の機能

読み取り専用

引数をコピーしないで読み取り専用にすることができる。

サンプル

値をコピーしてその値を破棄するときに型のサイズに対してメモリの使用量が増えてしまうが、その無駄なコピーを減らしてメモリを管理することによって効率的に管理できるようになる。

読み取り専用 shared参照のサンプル
Swiftの場合sharedを追加

func hoge(fuga: shared Int)

これで引数fugaがさらに素早く値の引渡しができ読み取り専用になる。

独占権の法則(Law Of Exclusivity)

同時にアクセスできないようにする

逆にデメリットは?

一方、ownershipの登場によりさらに理解することが増えてしまうというデメリットもあるが(自分もよくわからん・・・)、
swift5で使われる場合にはowner shipを使わなくても良い(Rustでは必須)

参考
https://gist.github.com/Gankro/1f79fbf2a9776302a9d4c8c0097cc40e
https://www.infoq.com/jp/news/2017/04/swift-memory-ownership-model