ตัวอย่าง
ต้องการฟังก์ชัน print_hash
สำหรับแสดงค่า Hash ของ Object โดยฟังก์ชันนี้จะใช้กับ Object ทุกประเภท โดยมีเงื่อนไขว่า Object ที่ส่งเข้ามาจะต้อง Implement ฟังก์ชัน ชื่อ get_hash()
ด้วยเสมอ
Rust
ใช้ Trait ชื่อ Hash
โดย Implement ฟังก์ชัน get_hash()
ให้กับ Type ที่มีอยู่เดิม เช่น bool
และ i64
F#
F# ไม่มี Trait จึงใช้วิธีสร้าง Type ขึ้นใหม่ คือ MyInt
และ MyBool
โดยทั้งสอง Type มีการ Implement ฟังก์ชัน GetHash()
ไว้ด้วย
สำหรับฟังก์ชัน printHash
มีการประกาศ Member contraint ไว้ โดย Object ที่ส่งเข้ามาในฟังก์ชันนี้ จะต้องมี Implement GetHash()
จากตัวอย่างจะเห็นว่า printHash
สามารถรับ Instance ของ MyInt
และ MyBool
ได้ทั้งคู่