Rust(비교)
| r24 vs r25 | ||
|---|---|---|
| ... | ... | |
| 76 | 76 | } |
| 77 | 77 | println!("{result}"); |
| 78 | 78 | } }}} |
| 79 | 만약 위 코드에서 함수가 s2를 리턴한다면 | |
| 79 | 만약 위 코드에서 함수가 s2를 리턴한다면 어떤일이 벌어질지 생각해보자. | |
| 80 | ||
| 81 | result를 조회 할 때 s2의 원본을 조회해야하는데 그게 스코프를 나가버려서 사라져버렸다. 따라서 null pointer가 된다. | |
| 80 | 82 | |
| 81 | 83 | 그러면 의문이 들 것이다. "아니 그러면 런타임 에러를 발생시키면 되잖아." 그런데 러스트는 그걸 하지 말라 만든 언어다. 언어 설계에 모순이 생긴다. |
| 82 | 84 | |
| ... | ... |