단일 아포스트로피로 표시된 Rust 유형은 무엇입니까?
Rust에서 단일 아포스트로피로 표시된 여러 유형을 발견했습니다.
'static
'r
'a
그 아포스트로피의 의미는 무엇입니까? 아마도 참조 ( &
) 의 수정 자 일까요? 참조에 특정한 일반 타이핑? 이것에 대한 문서가 어디에 숨겨져 있는지 모르겠습니다.
이것은 Rust의 명명 된 수명입니다.
Rust 프로그래밍 언어 에서 인용 :
Rust의 모든 참조에는 해당 참조가 유효한 범위 인 수명이 있습니다. 대부분의 시간 유형이 추론되는 것처럼 대부분의 시간 수명은 암시 적이며 추론됩니다. 여러 유형이 가능하기 때문에 유형에 주석을 달아야 할 때와 유사하게, 참조의 수명이 몇 가지 다른 방식으로 관련 될 수있는 경우가 있습니다. 따라서 Rust는 일반 수명 매개 변수를 사용하여 관계에 주석을 달아야합니다. 런타임에 사용 된 실제 참조는 확실히 유효합니다.
평생 주석은 관련된 참조의 라이브 기간을 변경하지 않습니다. 서명이 제네릭 유형 매개 변수를 지정할 때 함수가 모든 유형을 승인 할 수있는 것과 동일한 방식으로, 서명이 제네릭 수명 매개 변수를 지정할 때 함수는 모든 수명이있는 참조를 승인 할 수 있습니다. 수명 주석이하는 일은 여러 참조의 수명을 서로 관련시키는 것입니다.
수명 주석에는 약간 특이한 구문이 있습니다. 수명 매개 변수의 이름은 아포스트로피로 시작해야합니다
'
. 수명 매개 변수의 이름은 일반적으로 모두 소문자이며 제네릭 유형과 마찬가지로 이름은 일반적으로 매우 짧습니다.'a
대부분의 사람들이 기본값으로 사용하는 이름입니다. 수명 매개 변수 주석은&
참조 뒤에 오고, 공백은 참조 유형에서 수명 주석을 분리합니다.
달리 말하면, 수명은 참조가 가리키는 데이터가 유효한 실행 기간의 근사치입니다. Rust 컴파일러는 안전 할 수있는 최단 수명을 보수적으로 추론합니다. 컴파일러에게 참조가 가장 짧은 추정치보다 오래 지속된다는 것을 알리려면 예를 들어 출력 참조가 주어진 입력 참조와 동일한 수명을 갖는다 고 이름을 지정할 수 있습니다.
'static
프로그램의 기간 동안 - 수명은 특별한 수명이 가장 긴 모든 수명의 살았다이다. 일반적인 예는 프로그램 / 모듈의 수명 동안 항상 사용할 수있는 문자열 "리터럴"입니다.
이 슬라이드 데크 에서 자세한 정보를 얻을 수 있습니다 ( 슬라이드 29부터 시작).
Lifetimes in Rust 는 또한 수명에 대해 깊이 설명합니다.
'IT Share you' 카테고리의 다른 글
ListView 항목 스크롤 애니메이션 ( "UIKit Dynamics"와 유사) (0) | 2020.11.28 |
---|---|
수은을 사용하여 svn : externals를 에뮬레이션 할 수 있습니까? (0) | 2020.11.28 |
파이썬에서 객체에 속성을 추가 할 수없는 이유는 무엇입니까? (0) | 2020.11.28 |
멤버 함수와 함께 std :: bind를 사용하여이 인수에 대해 개체 포인터를 사용합니까? (0) | 2020.11.28 |
C ++ 14에서 쌍 배열의 초기화에 여전히 이중 중괄호가 필요한 이유는 무엇입니까? (0) | 2020.11.28 |