구조체를 레퍼런스로 넘긴다는게 불필요한 복사를 막기 위해서가 큰 이유잖아.
근데 값 수정을 막기위해 defensive copy를 생성한다는데 그럼 결국 복사본을 넘겨서 수정못하는 거랑 같은 거 아님? 레퍼런스일 이유를 모르겠음.
한가지 내 예측은 한번 생성된 defensive copy를 내부에서 추가적인 복사가 이루어질때 계속 사용함으로써 복사를 막는다는 개념인 거 같은데 이게 맞는지 모르겠다.
복사를 막는 용도로 복사본의 레퍼런스를 넘긴다니...
내부적으로 const 포인터를 넘기는 거 아님?
ㄴㄴ 멤버값을 변경하는 mutable한 메소드를 호출해도 값은 안변하고 내부적으로 defensive copy에 의해 생성된 인스턴스에선 메소드 호출이 일어나지 않았기 때문이라고 명시되어 있음. 다만 이렇게 하는 이유를 모를 뿐.
그래? 몰랐네
값타입 in 파라미터는 readonly struct에만 쓰는거임 아니면 너 말대로 무조건 성능손해봄
주말에 논다고 이제 봤노ㅋ ㄱㅅㄱㅅ
readonly struct 쓰거나 readonly method만 써야 성능향상있음