Struct VS Class



StructとClassの違い


差異

  • Struct継承不可
  • タイプ選択は、クラスのインスタンスでのみ実行できます.
  • 初期化器はクラスのインスタンスにのみ使用できます.
  • 参照カウント(参照カウント)は、クラスのインスタンスにのみ適用されます.
  • 最も一般的な回答


    Struct is Valute Type & Class is Reference Type
    でもこれはどういう意味ですか...
    コード例で説明すると...

    Struct

    struct Person {
        var name: String = "SUHUN"
    }
    
    var i = Person()
    print(i.name) 			// SUHUN 출력
    var you = i 			// 복사
    print(you.name) 		// SUHUN 출력
    
    // #1
    i.name = "Test Name"
    print(i.name)   		// Test Name 출력
    print(you.name)			// SUHUN 출력
    
    
    // #2
    you.name = "Your Name Test"
    print(i.name) 			//SUHUN 출력
    print(you.name) 		// Your Name Test 출력
    名前とあなた.nameはすでに異なるインスタンスです.
    したがって、値タイプは元のファイルをコピーする必要はありません.
    各インスタンスにはそれぞれの値があります.

    Class

    class People {
        var name : String = "suhun"
    }
    
    var mine = People() 	
    print(mine.name)		// print "suhun"
    var your = mine			// copy
    var third = mine		// copy for The 3rd
    print(your.name)		// print "suhun"
    your.name = "Test Name"		// 복사 한 인스턴스의 값 변경
    				// 참조한 데이터까지 변경
    print(mine.name)		// print "Test Name"
    print(your.name)		// print "Test Name"
    「クラス」(参照タイプ)参照タイプを一度コピーすると、
    値の元の値が参照されるまで、すべての値が変更されます.
    アップルの公式ドキュメントを参照してください
    iDOのブログを参照してください