ところがSwiftはARCに加えて後付けの所有権モデルなので指定がうざくて使いにくい分かりにくい

・move(ムーブ)例
var name = "Taro"
let newName = move name
// 所有権が name → newName に移動し元のnameは使えなくなる

・borrow(借用)例
func greet(_ name: __shared String) {
print("Hello \(name)")
}
// コピーせず複数箇所で読み取り可能

・consume(消費)例
func consume(_ name: __owned String) {
print("Consumed \(name)")
}
// 消費するため呼び出し元は name を使えなくなる

・move-only types(ムーブ専用型)例
@_moveOnly
struct Token {
let id: UUID
}
// コピー禁止で所有権の移動のみ許可