Tour of Rust Table of Contents

Generic Functions

Generics ใน Rust ทำงานประสานกับ traits เมื่อเราประกาศพารามิเตอร์ type T เราสามารถระบุว่า type ไหนที่สามารถใช้เป็นอาร์กิวเมนต์ได้บ้าง ด้วยการลิสต์รายการ ว่าเราอยากได้อาร์กิวเมนต์ที่อิมพลีเมนต์ traits ใดบ้าง

จากตัวอย่างนี้ type T ต้องอิมพลีเมนต์ ตาม trait Foo

fn my_function<T>(foo: T)
where
    T:Foo
{
    ...
}

ด้วยการใช้ generics ทำให้เราสามารถสร้าง static typed functions ได้ตอน compile time เราจึงสามารถรู้ type และขนาดของมัน และสามารถทำ static dispatch และเก็บ ขนาดของมันได้