Swift 5.9には、多くの新しい機能や改善が盛り込まれていますが、注目の変更としてnoncopyable("move-only"タイプとも呼ばれます)の導入があります。これは、変数やオブジェクトが一意の所有権を持つことを意味し、従来のSwiftの型とは異なり、自由にコピーすることができない新しい型のことを指します。 従来のコピー可能な構造体や列挙型は、一意のリソースを表現するのに最適ではありませんでした。 classの場合、classが参照型であるため、オブジェクトは初期化されると一意のアイデンティティ(参照)持ちます。これにより、一意のリソースを表現することが可能となります。 class UniqueResource { var uniqueName: String init(uniqueName: String) { self.uniqueName = uniqueName } }