Value Type vs Reference Type

작성일

Value Type vs Reference Type

  • 값타입은 스택에 저장되어 인스턴스를 찍을때 값이 복사가 된다
  • 참조타입은 스택에 힙의메모리주소를 저장하고 힙의 메모리주소를 가르켜 인스턴스를 찍을때 값이 참조가 된다.
struct SizeVaule {
  var width = 0.0
  var height = 0.0
}

var value = SizeValue()
var value2 = value // 값이 복사됨
value2.width = 1.0
value2.height = 2.0

//값을 복사했기 때문에 value값은 그대로임
value // 0.0 0.0
value2 // 1.0 2.0


class SizeObject {
  var width = 0.0
  var height = 0.0
}

var object = SizeObject()
var object2 = object // 값의 주소가 그대로 복사됨 

object2.width = 1.0
object2.height = 2.0 

// 값의 주소를 둘다 가르키기 때문에 object의 값이 둘다 바뀜
object // 1 2
object2 // 1 2