MaybeUninit

MaybeUninit (미초기화 인스턴스 생성 래퍼)

T의 초기화되지 않은 인스턴스를 구성하는 래퍼 타입이에요.

출처: Rust 공식 문서

본문

초기화 불변식 (Initialization invariant)

컴파일러는 일반적으로 변수가 변수의 타입 요구 사항에 따라 제대로 초기화되거나 "유효(valid)"하다고 가정해요. 예를 들어 참조 타입 변수는 정렬되고 null이 아니어야 해요. 이것은 unsafe 코드에서도 항상 지켜져야 하는 불변식이에요. 결과적으로 참조 타입 변수를 0으로 초기화하면, 그 참조가 메모리에 접근하는 데 사용되는지 여부와 무관하게 즉시 정의되지 않은 동작이 발생해요:

use std::mem::{self, MaybeUninit};
pub union MaybeUninit<T> {
    /* private fields */
}

더 알아보기 (Learn more)

Rust 공식 문서