Generic Type Inference ใน F#

wk
1 min readJul 19, 2020

--

การใช้งาน Generic Type ใน .NET โดยทั่วไป ต้องระบุ Type Parameter ลงไปด้วย เช่น Dictionary ซึ่งมี 2 Type คือ Key และ Value

ตัวอย่าง การประกาศ Generic Dictionary ที่มี Key เป็น string และ Value เป็น string ต้องระบุ Type ไว้ในเครื่องหมาย <> ดังนี้

แต่เนื่องจาก Compiler ของ F# มีสามารถในการ Infer Generic Type ให้อัตโนมัติ โดยตรวจสอบจากการใช้งานตัวแปร ทำให้สามารถเขียนโค้ดได้สั้นลง

จากตัวอย่าง header ไม่มีการระบุ Type Parameter แต่ Compiler จะ Infer ให้ header เป็น Dictionary<string,string> เนื่องจากในบรรทัดที่ 5 มีการ เพิ่ม Key, value ซึ่งเป็น string, string นั่นเอง

สำหรับ C# ไม่มีความสามารถนี้ ดังนั้นการประกาศ Dictionary จึงต้องระบะ Type Parameter ลงไปเสมอ

--

--

No responses yet