본문 바로가기
Zig

[Zig] 옵셔널(optionals)

by 코드쉼터 2024. 3. 21.

옵셔널 타입을 사용하는 방법은 다음 같습니다.

---------------------------------------------------------------------------------------------------

 const 또는 var 변수 이름 : ? 형태와 크기 = 할당할 초기 

 

옵셔널은 값을 가질수도 있고, 아닐수도 있는 변수 타입입니다.

---------------------------------------------------------------------------------------------------

 

예시

// 함수의 반환 타입이 ?u16 로 옵셔널입니다.

fn myFunc() ?u16  
{

    // 함수 실행 과정에 문제가 있어서 null 을 반환한다고 가정합니다.
    return null;

 

    // 정상적으로 동작한다면 값을 반환할 수도 있습니다.

    return 1234;
}

 

pub fn main() void 
{

    // result 에는 null 또는 u16 값이 저장될 수 있습니다.

    // myFunc() 함수의 실행 결과는 컴파일 타임에 null 로 결정되고 있습니다.

    // 따라서 result 에는 null 이 저장됩니다.
    const result = myFunc();    // 함수의 반환형이 명확하므로 형태와 크기 를 생략할 수 있습니다.
    

    // result 가 null 이므로 answer 에는 4321 이 저장됩니다.
    var answer: u16 = result orelse 4321;

    

    // " The Answer: 4321 " 이 출력됩니다.
    std.debug.print( " The Answer: {}.\n ", .{answer});
}

 

'Zig' 카테고리의 다른 글

[Zig] 값(values)  (0) 2024.03.21
[Zig] 메소드(methods)  (0) 2024.03.21
[Zig] 포인터(pointers)  (0) 2024.03.21
[Zig] 구조체(structs)  (0) 2024.03.21
[Zig] 열거형(enums)  (0) 2024.03.21