Menu
CoddyTech

Thêm và xóa phần tử

Bài học 19 trên 21 trong khóa học Slice và map trong Go của Coddy.

Từ điển trong Golang hoạt động giống như mảng và lát cắt. Để thêm phần tử mới vào từ điển, ta dùng cú pháp giống như với mảng, nhưng trong từ điển, ta chỉ định cả khóa và giá trị. Ví dụ, giả sử ta có một từ điển như sau:

var books = map[string]int{
    "Python":     1,
    "JavaScript": 2,
    "Rust":       3,
}

Để thêm phần tử mới, ta làm như sau:

books["Golang"] = 4

Và nếu in từ điển ra, ta sẽ thấy Golang trong đó:

map[Golang:4 JavaScript:2 Python:1 Rust:3]

Bạn có thể nhận thấy rằng các từ điển không sắp xếp các phần tử. Đó là vì từ điển không quá chú trọng đến thứ tự, mà ưu tiên hiệu suất truy xuất kết quả nhanh chóng.

Lưu ý rằng khi thêm phần tử mới vào từ điển, ta nên dùng cùng kiểu dữ liệu với kiểu giá trị của từ điển. 

Ví dụ, ta không thể làm như sau:

books["Golang"] = "Learn Golang"

Vì giá trị trong từ điển ban đầu có kiểu số nguyên, không phải kiểu chuỗi.

Giờ ta đã học cách thêm và lấy phần tử, vậy nếu cần xóa một phần tử khỏi từ điển thì sao?

Để làm việc này, ta có một hàm dựng sẵn tên là delete. Cú pháp như sau:

Giả sử ta cần xóa phần tử đầu tiên, đó là "Python":

delete(books, "Python")

Ta dùng từ khóa delete, rồi đặt tên từ điển và khóa cần xóa trong dấu ngoặc đơn. Trong trường hợp này, đó là "Python".

challenge icon

Thử thách

Dễ

Trong đoạn code đã cho, chúng ta định nghĩa một map có 6 phần tử. Hãy thực hiện các bước sau:

  • Thêm một phần tử mới với khóa 6 và giá trị "orange".
  • Xóa phần tử có khóa 10.
  • Dùng vòng lặp for để in ra map theo thứ tự, bắt đầu từ 1 đến end.

Tự làm thử

package main

import 	"fmt"


func main() {
	// Định nghĩa một map gồm 6 phần tử, đừng thay đổi phần này! 
	fruits := map[int]string{
		1: "apple",
		2: "banana",
		3: "cherry",
		4: "date",
		5: "elderberry",
		10: "fig",
	}

	// Thêm một phần tử mới có khóa 6 và giá trị "orange"
	 

	// Xóa phần tử có khóa 10
 

	// Dùng vòng lặp for để in map theo thứ tự từ 1 đến hết

}

Tất cả bài học trong Slice và map trong Go

Tự luyện tập: Trình biên dịch Go online