본문 바로가기

Zig24

[Zig] 슬라이스(slices) 슬라이스를 사용하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- 배열 이름 [ 시작 인덱스 .. 끝 + 1 인덱스 ] 시작 인덱스 또는 끝 + 1 인덱스 는 생략 가능하며, 생략시 최대 범위로 적용됩니다. --------------------------------------------------------------------------------------------------- 예시 // 길이가 10 인 digits 배열을 만들었습니다. var digits = [10] u8 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // 아래와.. 2024. 3. 21.
[Zig] 값(values) 메모리를 가지는 모든 것들은 값으로 표현됩니다. --------------------------------------------------------------------------------------------------- @import() : 외부 라이브러리를 메모리(RAM)에 넣어 구조체 변수 값으로 만듭니다. const 구조체 변수 이름 = @import( "외부 라이브러리 이름" ); --------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------.. 2024. 3. 21.
[Zig] 메소드(methods) 메소드를 정의하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- 구조체 정의 헤더 (참고) { pub 또는 생략 fn 메소드 이름 ( 입력 인자들... ) 반환형 { // 함수 호출시 실행될 내용 return 또는 생략 반환 값 ; } }; 메소드는 구조체 안에 들어있는 함수를 지칭합니다. 메소드를 사용하고 싶다면 구조체 이름 . 메소드 이름 ( ) 처럼 호출하여 사용할 수 있습니다. ----------------------------------------------------------------------------------------------.. 2024. 3. 21.
[Zig] 옵셔널(optionals) 옵셔널 타입을 사용하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- const 또는 var 변수 이름 : ? 형태와 크기 = 할당할 초기 값 옵셔널은 값을 가질수도 있고, 아닐수도 있는 변수 타입입니다. --------------------------------------------------------------------------------------------------- 예시 // 함수의 반환 타입이 ?u16 로 옵셔널입니다. fn myFunc() ?u16 { // 함수 실행 과정에 문제가 있어서 null 을 반환한다고 가정합니다. retu.. 2024. 3. 21.
[Zig] 포인터(pointers) 포인터를 정의하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- const 또는 var 포인터 이름 : * 포인터가 가리킬 데이터의 형태와 크기 = 할당할 초기 레퍼런스(주소) 값 또는 undefined 할당할 레퍼런스(주소) 초기 값 을 undefined 로 정의하면 초기 값을 설정하지 않고 나중에 값을 할당한다는 의미입니다. 포인터가 가리키는 값을 역참조(dereferencing) 할 때는 포인터 이름 .* 를 통해 가능합니다. -------------------------------------------------------------------.. 2024. 3. 21.
[Zig] 구조체(structs) 구조체를 정의하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- const 구조체 이름 = extern packed struct { 구조체 요소 이름 : 자료형 }; 정의 방법은 열거형과 유사하지만, 여러가지 자료형을 한꺼번에 담을 수 있습니다. extern 은 C 언어로 만들어진 라이브러리를 사용할 때 C 언어 함수와 호환성을 위해 선택적으로 붙이는 키워드입니다. packed 는 byte padding 없이 메모리 레이아웃을 정의한 순서 그대로 만들고 싶을때 선택적으로 붙이는 키워드입니다. ---------------------------------.. 2024. 3. 21.