# Generics (Rust) > Hàm generic, struct, enum, trait bounds, where clause, monomorphization - 20 câu hỏi phỏng vấn - Mid-Level - [Câu hỏi phỏng vấn: Rust](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van.md) ## 1. Cú pháp đúng để khai báo một hàm generic trong Rust là gì? **Câu trả lời** Trong Rust, các type parameter generic được khai báo bằng angle brackets sau tên hàm. Cú pháp fn name(param: T) cho biết T là một type parameter sẽ được xác định khi sử dụng. Sau đó compiler tạo ra mã chuyên biệt cho từng kiểu cụ thể được dùng khi gọi hàm. ## 2. Làm thế nào để khai báo một struct generic với một trường kiểu T? **Câu trả lời** Một struct generic được khai báo với type parameter trong angle brackets sau tên struct. Cú pháp struct Name { field: T } cho phép tạo một cấu trúc có thể tái sử dụng với các kiểu khác nhau. Kiểu T sau đó có thể được dùng trong các trường và phương thức liên kết với struct này. ## 3. Monomorphization trong Rust là gì? **Câu trả lời** Monomorphization là quá trình mà compiler Rust tạo ra mã máy chuyên biệt cho từng kiểu cụ thể được dùng với một generic. Ví dụ, nếu một hàm generic được gọi với i32 và String, compiler tạo ra hai phiên bản riêng biệt của hàm đó. Điều này đảm bảo hiệu năng tối ưu mà không có overhead lúc chạy. ## Còn 17 câu hỏi nữa - Làm thế nào để thêm một trait bound vào tham số generic T? - Sự khác biệt giữa cú pháp impl Struct và impl Struct là gì? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn Rust khác - [Cơ bản về Rust](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/rust-basics.md): 25 câu hỏi, Junior - [Ownership & Borrowing](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/ownership-borrowing.md): 22 câu hỏi, Junior - [Structs & Enums](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/structs-enums.md): 20 câu hỏi, Junior - [Xử lý lỗi](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/error-handling.md): 18 câu hỏi, Junior - [Collections](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/collections.md): 20 câu hỏi, Junior - [Modules & Packages](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/modules-packages.md): 18 câu hỏi, Junior - [Traits](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/traits.md): 22 câu hỏi, Mid-Level - [Lifetimes](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/lifetimes.md): 20 câu hỏi, Mid-Level - [Iterators & Closures](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/iterators-closures.md): 22 câu hỏi, Mid-Level - [Smart Pointers](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/smart-pointers.md): 22 câu hỏi, Mid-Level - [Concurrency Basics](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/concurrency-basics.md): 20 câu hỏi, Mid-Level - [async/await](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/async-await.md): 22 câu hỏi, Mid-Level - [Testing](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/testing.md): 18 câu hỏi, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/cargo-ecosystem.md): 18 câu hỏi, Mid-Level - [Pattern Matching](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/pattern-matching.md): 18 câu hỏi, Mid-Level - [Macro](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/macros.md): 20 câu hỏi, Mid-Level - [Serde & Serialization](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/serde-serialization.md): 20 câu hỏi, Mid-Level - [Unsafe Rust](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/unsafe-rust.md): 20 câu hỏi, Senior - [Trait nâng cao](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/advanced-traits.md): 22 câu hỏi, Senior - [Lifetime Nâng Cao](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/advanced-lifetimes.md): 20 câu hỏi, Senior - [Type System](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/type-system.md): 20 câu hỏi, Senior - [Tokio & Async I/O](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/tokio-async.md): 22 câu hỏi, Senior - [Tối ưu hóa Hiệu suất](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/performance-optimization.md): 20 câu hỏi, Senior - [Memory Management](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/memory-management.md): 20 câu hỏi, Senior - [Web Frameworks](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/web-frameworks.md): 22 câu hỏi, Senior - [Database Integration](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/database-integration.md): 20 câu hỏi, Senior - [Design Pattern trong Rust](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/design-patterns.md): 20 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/generics