「Swift5」クラス(class)のインスタンスをコピー(clone)するサンプル

環境
Ubuntu 20.04
Swift 5.2.3

書式

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class クラス名 {
var 変数名:データ型
  init(変数名:データ型){
 処理コード
 }
}
var インスタンスA =クラス名(変数名:値)
var インスタンスB =インスタンスA
class クラス名 { var 変数名:データ型   init(変数名:データ型){  処理コード  } } var インスタンスA =クラス名(変数名:値) var インスタンスB =インスタンスA
class クラス名 {
  var 変数名:データ型
  init(変数名:データ型){
  処理コード
 }
}
var インスタンスA =クラス名(変数名:値)
var インスタンスB =インスタンスA

クラスの場合は、参照をコピーしてるので、インスタンスAとインスタンスBの変数の値は同じです。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// クラス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)
// クラス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)
// クラス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