24b0d121e0c176b660b8f68b12d21a1d29fc5385

nll에 관한 주장은 흥미롭게 봤습니다만 이것은 빌림검사기를 통해 누가 빌려간 동안 변경할 수 없다는 메모리 안전 기능을 유지하면서도 빌림이 언제 끝났느냐를 더욱 엄밀하게 검사하여 프로그래머에게 더 많은 자유를 준 것입니다.


과거 (Lexical Lifetimes): 러스트의 초기 버전에서는 변수의 수명을 **'코드 블록(중괄호 {})의 시작과 끝'**이라는 단순하고 딱딱한 범위(Lexical)로만 계산했습니다. 위 코드에서 y가 선언되면 블록이 끝날 때까지 x는 계속 '빌려준 상태'로 간주되어, 중간에 x를 수정하려고 하면 컴파일러가 무조건 "안 돼, 빌려준 중이야!"라며 막았습니다.

현재 (Non-Lexical Lifetimes - NLL): 2018년경 도입된 이 기능은 컴파일러가 더 똑똑해진 것입니다. "중괄호가 끝날 때까지"가 아니라 **"실제로 y라는 변수가 마지막으로 사용된 지점"**까지만 빌림을 유지합니다.


이거 가지고 고무줄 스펙이라고 하면 c도 자바도 최신버전에서 스펙 추가되니 고무줄이겠죠.

어떻게든 러스트를 까내리기 위해 애쓰시는 모습 참 안타깝습니다.  

- dc official App