@fromBackingInt — 백킹 정수로 값 다시 만들기

@fromBackingInt — 백킹 정수로 값 다시 만들기

정수를 enum, packed struct, packed union 값으로 되돌려 주는 빌트인 함수예요. 안전 검사를 거쳐 유효하지 않은 값을 걸러 내는 게 핵심이에요. 출처: Zig Documentation

본문

@fromBackingInt(backing_int: BackingInt(T)) T

@fromBackingInt는 정수를 enum, packed struct, 또는 packed union 값으로 바꿔 줘요. 반환 타입은 결과 타입 추론(inferred result type)으로 정해져요.

여기서 한 가지 주의할 점이 있어요. 대응하는 tag 값(tag value)이 없는 정수를 enum으로 바꾸려고 하면, **안전 검사(safety-checked)**에 걸려서 Illegal Behavior가 발생해요.

다만 non-exhaustive enum은 예외예요. non-exhaustive enum은 자신의 정수 tag 타입 안에 있는 모든 정수에 대응하는 값을 갖고 있어요. 여기서 _ 값이 그 tag 타입에 남아 있는 이름 없는 정수들을 전부 대표해 주거든요. 그래서 정해지지 않은 값들까지도 유효한 값으로 처리되죠.

더 알아보기(Learn more)

  • @backingInt@fromBackingInt의 반대 방향이에요. enum, packed struct, packed union 값을 다시 백킹 정수(backing integer)로 꺼내 줘요.
  • @bitCast — 비트 패턴을 그대로 유지한 채 타입만 다시 해석할 때 써요. 값의 의미를 바꾸지 않고 표현만 바꾸고 싶을 때 유용해요.