class 와 struct의 차이점에서 이해했듯 값타입과 참조타입이 있는데( https://teol-it.tistory.com/25 ) struct, enum, tuple 와 기본자료형( Int, Float, Double, Bool, String, Array, Dictionary, Set ) 등은 값타입으로 되어있고 특히 기본자료형은 struct로 만들어져있습니다. 참조타입은 class, function(closure) 등이 있습니다. -- 값 타입은 깊은복사라고 해서 데이터의 새로운 복사본을 생성하는 것이고 -- 참조타입은 원본 데이터를 참조하는 얕은 복사라고 합니다 그래서 얕은복사인 참조타입(class func)은 원본데이터의 값을 변경하는 것이고 구조체와 같은 값타입은 원본데이터의 값을 변경하지 않..