Unity

유니티 string의 특별한 점

khkg12 2023. 8. 24. 16:31

유니티 string의 특별한 점

string은 클래스, 참조타입이라 힙영역에 매프레임할당될것같지만 그렇지않다. string 은 좀 특별한놈이라 불변성이란 특징을 갖는다. 불변성이란 변치 않아야 하는 것을 의미하는데, 값이 변치 않는다면 똑같은 영역에 존재하는 값을 참조하고, 값이 변한다면 새로운 영역에 할당하게 된다. 

Debug.Log("sadsa");

위 코드는 한번만 힙영역에 할당되고 그 뒤로 똑같은 sadsa라면 힙영역에 새로운 영역이 할당되지 않는다.

 

또한 string은 참조타입이라 얕은 복사가 일어날 것 같지만 깊은 복사가 일어난다.

string text = "hello";
string copyText;

copyText = text;
copyText = "World";
Debug.Log(text);

 

다음과 같은 코드에서 string이 참조타입이라 World가 뜰것같지만 hello가 뜬다. 즉 깊은복사가 일어난다. 즉 string은 예외적으로 얕은 복사가 아닌 깊은복사가 일어난다. 깊은복사가 일어나는 이유는 ICloneable이란 인터페이스를 string이 상속받기 때문이다.

 

 

 

'Unity' 카테고리의 다른 글

유니티 UI  (0) 2023.10.11
컴포넌트  (0) 2023.09.21
[유니티] Physics  (0) 2023.09.19
유니티 ui와 게임오브젝트 클릭 나누기  (0) 2023.09.05
유니티 충돌처리  (0) 2023.08.22