Swift, Structures & Classes

iDO·2021년 9월 19일
0

Swift

목록 보기
1/5
post-thumbnail

Struct vs Class

🍁차이점

  • Struct는 inheritance 할 수 없습니다!
  • 타입캐스팅은 Class의 instance만 가능합니다!
  • Deinitializers는 Class의 instance만 가능합니다!
  • Reference counting는 Class의 instance만 허용됩니다!

이런한 차이점은 Struct는 Value Types이고 Class는 Reference Types에서 나타난다⁉️

🍁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
    }
}

var i = Person(name: "iDo") // 인스턴스 생성
print(i.name)		    // -> iDo
var you = i                 // you가 i 참조(?)
print(you.name)	      	    // -> iDo 출력
you.name = "Mac"            // 값 변경
print(i.name)               // -> Mac 출력, 참조타입이기에
print(you.name)             // -> Mac 출력

🧐(아래 참고내용을 통해 더 자세한 정보를 확인할 수 있습니다!)

profile
이곳은 저를 위한 iOS 설명서입니다.

0개의 댓글