F # - แผนที่
ใน F # แผนที่คือชุดชนิดพิเศษที่เชื่อมโยงค่ากับคีย์ แผนที่ถูกสร้างขึ้นในลักษณะเดียวกับที่สร้างชุด
การสร้างแผนที่
แผนที่ถูกสร้างขึ้นโดยการสร้างแผนที่ว่างโดยใช้ Map.empty และเพิ่มรายการโดยใช้ฟังก์ชันเพิ่ม ตัวอย่างต่อไปนี้แสดงให้เห็นถึงสิ่งนี้ -
ตัวอย่าง
(* Create an empty Map *)
let students =
Map.empty. (* Creating an empty Map *)
Add("Zara Ali", "1501").
Add("Rishita Gupta", "1502").
Add("Robin Sahoo", "1503").
Add("Gillian Megan", "1504");;
printfn "Map - students: %A" students
(* Convert a list to Map *)
let capitals =
[ "Argentina", "Buenos Aires";
"France ", "Paris";
"Chili", "Santiago";
"Malaysia", " Kuala Lumpur";
"Switzerland", "Bern" ]
|> Map.ofList;;
printfn "Map capitals : %A" capitals
เมื่อคุณคอมไพล์และรันโปรแกรมจะให้ผลลัพธ์ดังต่อไปนี้ -
Map - students: map
[("Gillian Megan", "1504"); ("Rishita Gupta", "1502"); ("Robin Sahoo", "1503
");
("Zara Ali", "1501")]
Map capitals : map
[("Argentina", "Buenos Aires"); ("Chili", "Santiago"); ("France ", "Paris");
("Malaysia", " Kuala Lumpur"); ("Switzerland", "Bern")]
คุณสามารถเข้าถึงแต่ละองค์ประกอบในแผนที่โดยใช้คีย์
ตัวอย่าง
(* Create an empty Map *)
let students =
Map.empty. (* Creating an empty Map *)
Add("Zara Ali", "1501").
Add("Rishita Gupta", "1502").
Add("Robin Sahoo", "1503").
Add("Gillian Megan", "1504");;
printfn "Map - students: %A" students
(*Accessing an element using key *)
printfn "%A" students.["Zara Ali"]
เมื่อคุณคอมไพล์และรันโปรแกรมจะให้ผลลัพธ์ดังต่อไปนี้ -
Map - students: map
[("Gillian Megan", "1504"); ("Rishita Gupta", "1502"); ("Robin Sahoo", "1503
");
("Zara Ali", "1501")]
"1501"
การใช้งานพื้นฐานบนแผนที่
เพิ่มชื่อโมดูล
ตารางต่อไปนี้แสดงการทำงานพื้นฐานบนแผนที่ -
สมาชิก | คำอธิบาย |
---|---|
เพิ่ม | ส่งคืนแผนที่ใหม่พร้อมกับเพิ่มการเชื่อมโยงไปยังแผนที่ที่กำหนด |
ประกอบด้วยคีย์ | ทดสอบว่าองค์ประกอบอยู่ในโดเมนของแผนที่หรือไม่ |
นับ | จำนวนการผูกในแผนที่ |
มันว่างเปล่า | ส่งคืนค่าจริงหากไม่มีการเชื่อมโยงในแผนที่ |
สิ่งของ | ค้นหาองค์ประกอบในแผนที่ เพิ่ม KeyNotFoundException หากไม่มีการเชื่อมโยงอยู่ในแผนที่ |
ลบ | ลบองค์ประกอบออกจากโดเมนของแผนที่ จะไม่มีการเพิ่มข้อยกเว้นหากไม่มีองค์ประกอบ |
TryFind | ค้นหาองค์ประกอบในแผนที่โดยส่งคืนไฟล์ Some ค่าหากองค์ประกอบอยู่ในโดเมนของแผนที่และ None ถ้าไม่. |
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้ฟังก์ชันข้างต้น -
ตัวอย่าง
(* Create an empty Map *)
let students =
Map.empty. (* Creating an empty Map *)
Add("Zara Ali", "1501").
Add("Rishita Gupta", "1502").
Add("Robin Sahoo", "1503").
Add("Gillian Megan", "1504").
Add("Shraddha Dubey", "1505").
Add("Novonil Sarker", "1506").
Add("Joan Paul", "1507");;
printfn "Map - students: %A" students
printfn "Map - number of students: %d" students.Count
(* finding the registration number of a student*)
let found = students.TryFind "Rishita Gupta"
match found with
| Some x -> printfn "Found %s." x
| None -> printfn "Did not find the specified value."
เมื่อคุณคอมไพล์และรันโปรแกรมจะให้ผลลัพธ์ดังต่อไปนี้ -
Map - students: map
[("Gillian Megan", "1504"); ("Joan Paul", "1507"); ("Novonil Sarker", "1506"
);
("Rishita Gupta", "1502"); ("Robin Sahoo", "1503");
("Shraddha Dubey", "1505"); ("Zara Ali", "1501")]
Map - number of students: 7
Found 1502.