Swift, Structures & Classes


Struct vs Class


🍁差異

  • Struct継承不可!
  • タイプcastingはクラスインスタンスにのみ適用されます!
  • Deinitializersはクラスインスタンスのみをサポートします!
  • 参照カウントはクラスインスタンスのみを許可します!
  • この違いはStruckがValue Type,ClassがReference Typeの

    🍁Value Types & Reference Types🤔

  • Value Types Example: Struct
  • struct Person {
        var name: String
    }
    
    var i = Person(name: "iDo") // 인스턴스 생성
    print(i.name) 	            //-> iDo 출력
    var you = i 	            // 복사
    print(you.name)	            // -> iDo 출력
    you.name = "Mac"            // 값 변경
    print(i.name)	            // -> iDo = 원본은 그대로
    print(you.name)		    // Mac -> 변경값 출력

    Reference Types Exmaple: Class //浅いコピー→ショートカット class Person { var name: String init(name: String) { self.name = name } } vari=Personの作成(name:「iDo」)/インスタンス print(i.name) // -> iDo varyou=i/you引用i(?) print(you.name)/->iDo出力 you.name=Mac//値の変更 print(i.name)/->Mac出力、参照タイプ print(you.name)/->Mac出力 🧐(詳細については、以下の説明を参照してください!) 🙏 The Swift Programming Language