`@intFromError` — 에러를 정수로 바꾸기
@intFromError — 에러를 정수로 바꾸기
에러를 그대로 둔 채 어떤 형식으로 연산하고 싶을 때가 있어요. 에러는 사실 뒤에서 정수로 표현되는데, 그 값을 직접 다뤄야 할 때 쓰는 내장 함수가 @intFromError예요.
본문
@intFromError는 에러를 그 에러의 **정수 표현(integer representation)**으로 바꿔주는 내장 함수입니다. 함수 시그니처는 이렇게 생겼어요.
@intFromError(err: anytype) @Int(.unsigned, @bitSizeOf(anyerror))
이 함수가 받을 수 있는 타입은 다음 세 가지예요.
에러를 넘기면 그 에러가 실제로 가리키는 정수 값을 돌려받아요. 다만 이 캐스트는 소스 코드가 바뀌면 정수 표현이 안정적으로 유지되지 않는다는 점 때문에 가능하면 피하는 게 좋다고 권장돼요. 다시 말해, 지금 얻은 정수가 앞으로의 버전에서도 같은 에러를 가리킨다고 보장할 수 없다는 뜻이에요. 정수 값에 의존하는 로직을 짜기보다는 에러 자체를 그대로 전달하는 편이 안전해요.
더 알아보기(Learn more)
반대로 정수에서 에러를 되돌리고 싶다면 @errorFromInt를 참고하세요.