NeuroWhAI의 잡블로그

[Rust] turbofish - 제너릭 타입 지정 문법 본문

개발 및 공부/언어

[Rust] turbofish - 제너릭 타입 지정 문법

NeuroWhAI 2019. 1. 10. 20:15


https://turbo.fish/


터보피쉬는 물고기의 한 종류 Rust의 문법 중 하나입니다.

C++로 따지면 템플릿 파라미터를 직접 지정하는 것과 비슷하다고 할 수 있습니다.

let num = "42".parse();

위 코드는 컴파일이 안됩니다.

타입 추론에 필요한 정보가 부족하기 때문이죠.

num의 타입을 추론하자니 parse의 반환형이 제너릭 타입이라 알 수 없고

parse의 제너릭 타입을 추론하자니 num의 타입을 모르는 상황이죠.

두 해결 방법이 있는데 그냥 num: i32 이렇게 num의 타입을 지정하는 것과

parse에 turbofish 문법을 사용해서 해결할 수도 있습니다.

let num: i32 = "42".parse();
let num = "42".parse::<i32>(); // turbofish

사실 이 예제는 첫번째 방법이 더 좋아보이긴 하지만 터보피쉬 문법을 써야하는 상황이 생기기도 합니다.

C++ 사용자인 사람의 입장에서 parse<i32>()가 아닌 것이 낯설긴 하지만 "parse i32 버전"이라는 의미로 보면 익숙해질 수 있습니다.

실제론 무슨 의미로 저랬는진 모르겠지만요 ㅋㅋ...



Comments