이런한 차이점은 Struct는 Value Types이고 Class는 Reference Types에서 나타난다⁉️
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 -> 변경값 출력
// 얕은 복사 -> 바로가기
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 출력
🧐(아래 참고내용을 통해 더 자세한 정보를 확인할 수 있습니다!)