Rust

고급 트레잇

associated type 대 generic, GATs, trait object, dyn 키워드, object safety, vtable

22 면접 질문·
Senior
1

trait에서 associated type과 generic 매개변수의 주요 차이점은 무엇인가요?

답변

associated type은 타입당 하나의 trait 구현만 허용하는 반면, generic 매개변수는 여러 구현을 허용합니다. associated type을 사용하면 타입이 구현 자체에 의해 결정되므로 타입 추론이 단순해지고 사용할 때마다 타입을 지정할 필요가 없습니다.

2

Rust에서 trait object를 생성하려면 어떤 키워드를 사용하나요?

답변

Rust에서 trait object를 생성하려면 dyn 키워드를 사용합니다. 이는 메서드 디스패치가 vtable을 통해 런타임에 동적으로 일어남을 나타내며, 컴파일 시점에 해결되는 generic의 정적 디스패치와는 대조됩니다.

3

trait object 맥락에서 vtable이란 무엇인가요?

답변

vtable(virtual table)은 구체 타입에 대한 trait 메서드 구현을 가리키는 포인터들의 테이블입니다. trait object의 동적 디스패치에 사용되어, 컴파일 시점에 구체 타입을 몰라도 런타임에 올바른 메서드를 호출할 수 있게 합니다.

4

trait이 object-safe하려면 어떤 조건을 충족해야 하나요?

5

Clone trait은 왜 object-safe하지 않나요?

+19 면접 질문

다음 면접을 위해 Rust을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기