근데 int a = 42; 이런건 어떻게 할겨?
42라는 것이 있고 거기에 a라는 이름을 붙인다?
그럼 a의 값이 바뀌는 건?
a = 18;
42에 붙어있던 이름을 떼내서 18에 붙인다?
그럼 42가 여럿 있으면 어떻게 되지?
int a = 42;
int b = 42;
그럼 42라는 가상의 개념에 a,b 라는 태그를 붙여두나?
그런데 a가 변하면 b는 가만히 있는데?
\"변수의 변화\"는 존재하지 않고
만일 변수 값의 변화를 태그 모델로 설명하면(그거 완전 함슬람..)
a = 48;
이걸 42에 붙어있던 태그 a를 떼고 48에 붙인다고 설명할 수 있겠지..
그럼 이제 레퍼런스를 설명할 수 없음
int a = 42;
int& b = a;
여기서 a가 변하면 b도 변하는데
a = 18
그럼 a의 태그를 떼서 18에 붙이는 건 이해할 수 있음
근데 b는 왜 변함?
그냥 a에 42를 넣어두는게 더 상식적이지 않음?
아니 멀쩡한 내 뇌도 햇갈리게 만들지말아요
아마 예시인 리스트도 그렇고 파이썬 쓰던 사람 같음요 거기는 mutable이냐 immutable이냐 차이만 있지 전부 reference아닌가
참조는 변수가 아냐
한줄 요약: 레퍼런스 타입에 대해서는 제한적으로 태그 모델도 옳다
츄럴이가 이걸 모르고 쓴 글은 아니군
오캄의 면도날.
변수는 내부를 어떻게 해석할지에 대해서 정의한 n바이트 짜리 공간
오컴의 면도날 조아용 ㅎㅎ
형식적으로도 태그 보단 alias 에 가까움.
결국 이건 레퍼런스의 문제라기 보단 상수의 문제잖아.
반대로, 참조가 아닌 변수를 특수한 케이스라고 생각할 수도 있지요.
오컴의 면도날에 현혹되지 마소.