「Swift5」クラス(class)のインスタンスをコピー(clone)するサンプル
環境
Ubuntu 20.04
Swift 5.2.3
書式
class クラス名 { var 変数名:データ型 init(変数名:データ型){ 処理コード } } var インスタンスA =クラス名(変数名:値) var インスタンスB =インスタンスA
クラスの場合は、参照をコピーしてるので、インスタンスAとインスタンスBの変数の値は同じです。
使用例
// クラスEmpClassの定義 class EmpClass { var name: String init (name: String){ self.name = name } } //empAインスタンス生成 var empA = EmpClass(name: "山田 太郎") //empBインスタンスにempAの値を渡す var empB = empA empB.name = "佐藤 二郎" print("クラスをコピーするサンプル") print("インスタンスempAのメンバーname") print(empA.name) print("インスタンスempBのメンバーname") print(empB.name)
実行結果
$ swift 33.swift
クラスをコピーするサンプル
インスタンスempAのメンバーname
佐藤 二郎
インスタンスempBのメンバーname
佐藤 二郎