@FieldType — 구조체·공용체의 필드 타입 알아내기

@FieldType — 구조체·공용체의 필드 타입 알아내기

타입과 필드 이름만 알면, 그 필드가 어떤 타입인지 컴파일 타임에 바로 꺼내 쓸 수 있어요. 컴파일 타임에 타입을 다루는 코드를 짤 때 자주 만나게 되는 내장 함수죠.

출처: Zig Documentation

본문

타입과 그 타입에 속한 필드의 이름을 전달하면, 해당 필드의 타입을 돌려주는 함수예요.

@FieldType(comptime Type: type, comptime field_name: []const u8) type

Typefield_name 둘 다 comptime으로 평가돼요. 그래서 이 결과는 실행 시점이 아니라 컴파일 타임에 정해지는 타입 값이죠. 필드 이름은 []const u8 문자열로 주면 되고, 그 필드의 타입을 type으로 되돌려줘요.

예를 들어 struct의 필드 타입을 순회하거나, 어떤 타입 안에 특정 필드가 있는지 확인한 뒤 그 타입으로 추가 작업을 이어갈 때 유용해요.

더 알아보기

  • @Type — 타입 정보를 reflect로 다룰 때
  • @hasField — 필드가 실제로 존재하는지 검사할 때