이렇게 된다는 것이 이해가 안되서. 내가 알기로 위에서 아래로 코딩이 진행되고 진행이 이미 된 후에는 영향을 미치지 않는다고 알고 있거든?
근데 저 스샷보면 윗코딩이 꼭 아래에 까지 영향을 미치는것 같잖아.
등식기호 내가 알기로 a=4 라는거가 우리가 수학적으로 아는 등식 관계가 아니라 a<---4 로 a라는 공간에 4라는 값을 넣는거로 알고 있는데;;
위에 코드를 내가 생각하기론.
a=[1,2,3]
b=a
까지의 의미는 a에 [1,2,3]이라는 리스트를 넣고(a<---[1,2,3]), 그 다음 b공간에 a공간의 값을 집어넣는다. 라고 이해하고 있고 결국 그러면 b<---[1,2,3]이 되겠지.
a[1]=4로 하면 a공간중 [1] 인덱싱을 4라는 값으로 overwriting해라. 라고 이해하고 있어 근데 이미 윗코딩에서 a와 b의 연관관계는 끝난거잖아. 근데 왜 b도 4로 변한걸까..
저게 성립하려면 a----->[1,2,3]<----b 이렇게 연결되어 있다가 나중가서 a---->[1,4,3]<-----b이렇게 된 느낌인데;;
예전에 어디서 들은거 같다 배열참조 좀 찾아봐서 공부해야겠네
b = list(a)라고 list를 새로 생성하면 네가 원하는대로 됨 b = a 이렇게 하면 이미 있는 list를 같이 쓰는거
동적 타입 언어가 타입을 숨겨주기 때문에 \'=\'가 왜 다르게 적용되는지 헷갈리는게 정상... x=3 과 x=[3]은 똑같은 x라는 변수를 썼지만 \'type\'이 다르다는 것을 이해하면 됨. 타입이 달라지면 언어에서 정의한 연산자가 다르게 작동한다.
ㄴ a = 3이고 b = [3]이면 type()으로 자료형 확인할 수 있음 type(a) type(b)해보면 알거임 그런데 위에서 얘기하는건 자료형이 다르지 않음
value와 reference 차이
첫 랭귀지을 C로 시작하면 이런 궁금증은 바로풀리지. 어쨋든 얘는 소질이 보이네
!! // 코드 그자체로 파악이 안된다는 뜻이다. 코드라는게 변수들이 넘쳐나는데 매번 type()으로 구체적인 타입을 확인해야 한다면 배보다 배꼽이 더 커지는 꼴...
Functional 후로그래밍 언어를 쓰면 절대 만나지 않는 문제지 후후