let num: Int? = 4
if let num = num
{
print(num)
}
옵셔널 바인딩 예제 보면서 궁금한게 생겼는데
위에 예문처럼 바인딩 되는 num과 , optional 상수 num과 이름을 서로 같게 지을수도 있더라구...??
그래서 메모리주소가 서로 다른건가.. 하고 궁금해서 메모리에 대해서 찾아보니깐
맨위에있는 num은 전역변수라 데이터영역 이라는곳에 할당이되고
if let num <-- 얘는 if라는 함수의 매개변수니깐 스택 이라는곳에 할당이 되어서
저둘은 서로 저장되는 위치가 다르기 때문에 같은 num이라고 이름을 지을수 있는거 맞아...??
그러면 또 궁금한게 if let num <-- 얘까지만 if라는 함수의 매개변수인거고 대입 시키는 = num은 <-- 얜 전역변수인거 맞지??
틀린 부분이 있다면 알려주랑 ㅜㅜ..
다들 복 많이 받아~~!
맞아 if let 코드블록에서 힙스택에만 할당되는거야 - dc App
이 말이 맞음 근데 저런식으로 쓸일이 있나 싶다 변수명 헷갈리게
저거야 예제인거같고 얘 접근법이 좋은듯 이쪽먼저 궁금해하면서 자연스럽게 arc익혀야 좋은뉴비지 - dc App
오 궁금증 해결!! 고맙다 애들앙