「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
佐藤 二郎

Swift

Posted by arkgame