F # - Bản đồ
Trong F #, bản đồ là một loại tập hợp đặc biệt liên kết các giá trị với khóa. Một bản đồ được tạo theo cách tương tự như các tập hợp được tạo.
Tạo bản đồ
Bản đồ được tạo bằng cách tạo một bản đồ trống sử dụng Map.empty và thêm các mục bằng chức năng Thêm. Ví dụ sau đây chứng minh điều này -
Thí dụ
(* 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
Khi bạn biên dịch và thực thi chương trình, nó sẽ tạo ra kết quả sau:
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")]
Bạn có thể truy cập các yếu tố riêng lẻ trong bản đồ bằng cách sử dụng phím.
Thí dụ
(* 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"]
Khi bạn biên dịch và thực thi chương trình, nó sẽ tạo ra kết quả sau:
Map - students: map
[("Gillian Megan", "1504"); ("Rishita Gupta", "1502"); ("Robin Sahoo", "1503
");
("Zara Ali", "1501")]
"1501"
Các thao tác cơ bản trên Bản đồ
Thêm tên mô-đun
Bảng sau đây trình bày các thao tác cơ bản trên bản đồ:
Thành viên | Sự miêu tả |
---|---|
Thêm vào | Trả về một bản đồ mới với liên kết được thêm vào bản đồ đã cho. |
ContainsKey | Kiểm tra xem một phần tử có nằm trong miền của bản đồ hay không. |
Đếm | Số lượng ràng buộc trong bản đồ. |
IsEmpty | Trả về true nếu không có ràng buộc nào trong bản đồ. |
Mục | Tra cứu một phần tử trong bản đồ. Tăng KeyNotFoundException nếu không có ràng buộc nào tồn tại trong bản đồ. |
Tẩy | Xóa một phần tử khỏi miền của bản đồ. Không có ngoại lệ nào được nêu ra nếu phần tử không có mặt. |
TryFind | Tra cứu một phần tử trong bản đồ, trả về Some giá trị nếu phần tử nằm trong miền của bản đồ và None nếu không. |
Ví dụ sau minh họa việc sử dụng một số chức năng trên:
Thí dụ
(* 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."
Khi bạn biên dịch và thực thi chương trình, nó sẽ tạo ra kết quả sau:
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.