
Generics
Generic functions, structs, enums, trait bounds, where clause, monomorphization
1What is the correct syntax for declaring a generic function in Rust?
What is the correct syntax for declaring a generic function in Rust?
답변
In Rust, generic type parameters are declared using angle brackets after the function name. The syntax fn name<T>(param: T) indicates that T is a type parameter that will be determined at usage. The compiler then generates specialized code for each concrete type used when calling the function.
2How to declare a generic struct with a field of type T?
How to declare a generic struct with a field of type T?
답변
A generic struct is declared with the type parameter in angle brackets after the struct name. The syntax struct Name<T> { field: T } allows creating a reusable structure with different types. The type T can then be used in fields and methods associated with this struct.
3What is monomorphization in Rust?
What is monomorphization in Rust?
답변
Monomorphization is the process by which the Rust compiler generates specialized machine code for each concrete type used with a generic. For example, if a generic function is called with i32 and String, the compiler creates two distinct versions of that function. This ensures optimal performance without runtime overhead.
How to add a trait bound on a generic parameter T?
What is the difference between impl<T> Struct<T> and impl Struct<i32> syntax?
+17 면접 질문