DataScience
Published 2023. 8. 13. 14:17
[RUST] `static Rust
728x90

 

데이터의 라이프타임(lifetime)을 나타내는 특별한 키워드입니다. `'static`은 프로그램 전체 수명 동안 지속되는 정적(static) 데이터를 표현합니다. `'static`은 라이프타임이 가장 긴 수명을 갖는 것으로 간주됩니다.

 

`'static`은 다음과 상황에서 사용될 수 있습니다

 

1. 리터럴 데이터: 문자열 리터럴과 정수형 리터럴 같은 리터럴 값은 `'static` 라이프타임을 갖습니다. 이는 프로그램 실행 동안 변하지 않고 메모리에 상주하는 데이터입니다.

let static_string: &'static str = "Hello, world!";

 

2. 정적 변수: `static` 키워드로 선언된 정적 변수는 `'static` 라이프타임을 가집니다. 이러한 변수는 프로그램 전체에서 사용 가능하며, 프로그램이 실행되는 동안 메모리에 유지됩니다.

static STATIC_VALUE: i32 = 42;

 

3. 글로벌 상수: `const` 키워드로 선언된 글로벌 상수는 `'static` 라이프타임을 가집니다. 이러한 상수는 프로그램 전체에서 사용 가능하며, 프로그램이 실행되는 동안 메모리에 상주합니다.

const PI: f64 = 3.14159;

 

`'static` 라이프타임은 프로그램 전체에서 사용되는 데이터의 수명을 나타내므로, 해당 데이터는 프로그램 실행 동안 메모리에 유지됩니다. Rust는 `'static` 데이터에 대한 안전한 접근을 보장하고 메모리 안정성을 유지하기 위해 관련 규칙과 보호 기능을 제공합니다.



Rust에서 `&'static`은 `'static` 라이프타임을 갖는 참조(reference)를 나타냅니다. `'static` 라이프타임은 프로그램의 전체 수명 동안 유지되는 정적(static) 데이터를 가리킵니다.

 

`'static`은 Rust의 라이프타임 시스템에서 가장 긴 수명을 갖는 라이프타임으로, 해당 데이터가 프로그램 실행 동안 유지되는 것을 의미합니다. `'static` 라이프타임은 특히 리터럴 문자열, 정적 변수, 글로벌 상수 등과 관련됩니다.

 

`&'static` 참조는 `'static` 라이프타임 데이터에 대한 불변 참조(immutable reference)를 나타냅니다. `'static` 데이터에 대한 불변 참조는 프로그램 전체에서 안전하게 사용될 수 있으며, 수명 관리 및 대여 규칙에 따라 해당 데이터에 대한 접근을 제한합니다.

 

예를 들어, 다음은 `'static` 라이프타임을 갖는 문자열에 대한 불변 참조를 나타내는 예입니다:

 

fn main() {

    let static_string: &'static str = "Hello, world!";

    

    // 'static 라이프타임 데이터에 대한 불변 참조

    println!("{}", static_string);

}

 

 

위의 예제에서 `static_string` 변수는 `'static` 라이프타임을 갖는 문자열에 대한 `&'static str` 타입의 참조를 가지고 있습니다. 이 참조는 프로그램 전체 수명 동안 유효하며, 해당 문자열에 대한 불변 참조를 제공합니다.

 

'Rust' 카테고리의 다른 글

[Rust] mut 변수  (139) 2024.02.15
[RUST] & * ` ' ' 다양한 기호  (58) 2023.08.12
[RUST] match  (127) 2023.08.10
[RUST] if let  (78) 2023.08.09
[RUST] unwrap과 '?'  (99) 2023.08.07
profile

DataScience

@Ninestar

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!