zig23 [Zig] 열거형(enums) 열거형을 정의하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- const 열거형 이름 = enum ( 태그 자료형 ) { 열거 요소 = 태그 값 }; ( 태그 자료형 ) 은 생략 가능하며, 생략시 컴파일러가 알아서 적절한 크기의 unsigned 자료형을 사용합니다. 열거 요소 는 여러개 정의할 수 있으며, 콤마로 구분합니다. 태그 값 은 생략 가능하며, 생략시 열거 요소들... 을 적은 순서대로 0, 1, 2, ... 기본 태그 값이 부여됩니다. ----------------------------------------------------------.. 2024. 3. 21. [Zig] 도달 불가능(unreachable) 도달하면 안되는 코드 영역을 지정하여 에러를 반환할 수 있습니다. --------------------------------------------------------------------------------------------------- unreachable 컴파일 타임에 확인 가능한 조건은 컴파일 과정에서 미리 검사합니다. 런 타임에 확인 가능한 조건은 Debug 와 ReleaseSafe 모드일 때만 검사합니다. --------------------------------------------------------------------------------------------------- 예시 switch ( 5 ) { 1...4 => ' A ', else => unreachable } // 컴.. 2024. 3. 21. [Zig] switch 조건문(statement) switch 조건문을 정의하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- switch ( 인자 ) { // 인자 와 일치하는 조건이 있는지 찾아서 해당 코드를 수행합니다. 조건 => 수행할 내용, else => 수행할 내용 } 인자 로 넣을 값은 정수, enum, tagged union 을 사용할 수 있습니다. 조건 은 모든 경우에 철저히 대비해야 합니다. 불가능하다면 반드시 else 조건을 작성해야 합니다. 조건 은 여러개 정의할 수 있으며, 표현식으로 넣을 수도 있습니다. 수행할 내용 이 길어지면 중괄호로 감싸서 개행해도 좋습니다. ------.. 2024. 3. 21. [Zig] 지연(defer) Zig 에서 지연은 해당 코드의 실행을 중괄호(scope) 마지막에서 수행되도록 미룹니다. --------------------------------------------------------------------------------------------------- { defer 맨 마지막에 수행되도록 미룰 코드 // 다른 코드들... } 메모리 할당 바로 아래 defer 키워드로 소멸을 같이 명시하면 코드의 가독성이 높아집니다. 중괄호 내에서 defer 표현식이 여러번 등장한 경우, 역순으로 수행됩니다. (내부적으로 스택에 쌓임) -----------------------------------------------------------------------------------------------.. 2024. 3. 20. [Zig] 에러(errors) 에러는 단순히 값으로 취급합니다. 에러 셋(error sets) 을 만드는 방법은 아래와 같습니다. --------------------------------------------------------------------------------------------------- const 에러 셋 이름 = error { // 에러 값들 }; --------------------------------------------------------------------------------------------------- 예시 const MyErrorSet = error { TooSmall, TooBig, }; fn detectProblems (n : u32) MyErrorSet ! u32 { if (n < .. 2024. 3. 20. [Zig] 함수(functions) 함수를 정의하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- pub 또는 생략 fn 함수이름 ( 입력 인자들... ) 반환형 { // 함수 호출시 실행될 내용 return 또는 생략 반환 값 ; } pub 또는 생략 : pub 을 적으면 함수의 공개 범위를 public 으로 확장하고, 아무것도 적지 않으면 private 으로 한정합니다. return 또는 생략 : 반환할 값이 없는 경우 return 표현은 작성하지 않으며, 반환형은 void 로 작성합니다. ----------------------------------------------------.. 2024. 3. 20. 이전 1 2 3 4 다음