코드의 유일한 차이는 struct와 class 키워드이다. 이와 같이 함수에서 객체를 만들 때 각 키워드가 저장되는 방식이 어떻게 다른지 알아보자.
var a = new Id(123);
그림 3-10은 이 둘이 어떠한 방식으로 배치되는지를 보여준다.
구조체는 값 타입이므로 구조체를 다른 구조체에 할당하면 참조의 복사본이 하나 더 만들어지는 것이 아니라 구조체 전체 내용의 복사본이 만들어진다.
var a = new Id(123); var b = a;
그림 3-11은 이 경우 어떻게 구조체가 작은 타입을 저장하는 데 효율적인지를 보여준다.
▲ 그림 3-10 메모리에서 클래스와 구조체가 배치되는 방식의 차이