新版本的变更 / Swift 5.9

// in version 5.9 
struct User: ~Copyable {
    let name: String
}

let pavel = User(name: "Pavel")
//move the original instance pavel to pavelCopy
let pavelCopy = pavel

print("pavel is '\(pavelCopy.name)'")

//Error: 'pavel' used after consume
//print("pavel is '\(pavel.name)'")


An instance of a noncopyable type always has unique ownership, unlike normal Swift types which can be freely copied.