
165
3
장
주요 개념
조체를 만드는 것이 대체로 다루기 쉽다.
●
'static
수명은 스코프를 절대 벗어날 일이 없는 개체에 대한 레퍼런스로 사용된다. 그런 개체의 예로
는 글로벌 데이터, 의도적으로 누수된 힙의 항목 등이 있다.
●
수명 레이블은 수명이 ‘같음’을 나타내는 용도로만 사용된다. 따라서 출력 수명은 입력 수명 안에 포함
된다.
●
수명 레이블을 구체적으로 지정할 필요가 없다면 익명 수명 레이블 (
'_
)을 사용한다.
아이템
15
: 대여 검사기를 잘 파악하라
러스트에서 값마다 소유자가 있지만, 소유한 값을 코드의 다른 곳에 빌려줄 수 있다. 이런
대
여
borrowing
메커니즘은 레퍼런스의 생성과 사용 과정에 적용되며 관련 규칙에 어긋나지 않도록
대여 검사기
borrow
checker
가 지키고 있다.
러스트의 레퍼런스는 내부적으로
C
나
C
++ 코드에서 보던 것과 같은 포인터(아이템
8
)를 사
용하는데,
C
/
C
++에서 발생하던 문제를 방지하기 위해 러스트에는 몇 가지 규칙과 제약 조건
을 적용한다. 그 차이를 간단히 비교하면 다음과 같다.
●
러스트의 레퍼런스는
C
/
C
++와 마찬가지로 앰퍼샌드 (
&
)를 통해 생성한다(예:
&value
).
●
러스트의 레퍼런스는
C
++와 마찬가지로
nullptr
이 될 수 없다.
●
러스트의 레퍼런스는
C
/
C
++의 포인터처럼 ...