Menu
×

Được chứng nhận

Ghi lại kiến ​​thức của bạn

Đăng nhập Đăng ký

Tạo Tài khoản Example.com.vn miễn phí để cải thiện trải nghiệm học tập của bạn

Người tìm đường và việc học của tôi

Theo dõi tiến độ học tập của bạn tại Example.com.vn và thu thập phần thưởng

Nâng cấp

Trở thành người dùng PLUS và mở khóa các tính năng mạnh mẽ (không có quảng cáo, lưu trữ, hỗ trợ, ..)

Bắt đầu từ đâu

Bạn không chắc chắn muốn bắt đầu từ đâu? Đi theo con đường được hướng dẫn của chúng tôi

Trình chỉnh sửa mã (Dùng thử)

Với trình chỉnh sửa mã trực tuyến của chúng tôi, bạn có thể chỉnh sửa mã và xem kết quả trong trình duyệt của mình

Video

Tìm hiểu những điều cơ bản về HTML qua video hướng dẫn thú vị và hấp dẫn

Mẫu

Chúng tôi đã tạo một loạt mẫu trang web đáp ứng mà bạn có thể sử dụng - miễn phí!

Web hosting

Lưu trữ trang web của riêng bạn và chia sẻ nó với mọi người với Example.com.vn Spaces

Tạo một máy chủ

Tạo máy chủ của riêng bạn bằng Python, PHP, React.js, Node.js, Java, C#, v.v.

Làm thế nào để

Bộ sưu tập lớn các đoạn mã cho HTML, CSS và JavaScript

Khung CSS

Xây dựng các trang web nhanh và phản hồi bằng cách sử dụng khung W3.CSS miễn phí của chúng tôi

Thống kê trình duyệt

Đọc xu hướng dài hạn của việc sử dụng trình duyệt

Tốc độ gõ

Kiểm tra tốc độ đánh máy của bạn

Đào tạo AWS

Tìm hiểu dịch vụ web của Amazon

Bộ chọn màu

Sử dụng công cụ chọn màu của chúng tôi để tìm các màu RGB, HEX và HSL khác nhau. Bánh xe màu hình tròn thể hiện sự chuyển màu trong quang phổ

Trò chơi mã

Trò chơi mã hóa W3Schools! Giúp linh miêu thu thập nón thông Logo Lynx

Đặt mục tiêu

Nhận hành trình học tập được cá nhân hóa dựa trên các kỹ năng và mục tiêu hiện tại của bạn

Bản tin

Tham gia bản tin của chúng tôi và có quyền truy cập vào nội dung độc quyền mỗi tháng

Việc làm

Thuê những tài năng công nghệ hàng đầu. Hợp lý hóa quy trình tuyển dụng của bạn để có đội ngũ phù hợp hoàn hảo

Lớp học

Hãy liên hệ để sử dụng Example.com.vn Plus và các chứng chỉ với tư cách là một tổ chức giáo dục

×
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP CÁCH W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS AN NINH MẠNG DỮ LIỆU KHOA HỌC

Đi bản đồ


Đi bản đồ

Bản đồ được sử dụng để lưu trữ các giá trị dữ liệu theo cặp khóa: giá trị.

Mỗi phần tử trong bản đồ là một cặp khóa:giá trị.

Bản đồ là một bộ sưu tập không có thứ tự và có thể thay đổi, không cho phép trùng lặp.

Độ dài của bản đồ là số phần tử của nó. Bạn có thể tìm thấy nó bằng hàm len() .

Giá trị mặc định của bản đồ là không.

Bản đồ chứa các tham chiếu đến bảng băm cơ bản.

Go có nhiều cách để tạo bản đồ.


Tạo bản đồ bằng var:=

Cú pháp

var a = map[KeyType]ValueType{ key1 : value1 , key2 : value2 ,...}
b := map[KeyType]ValueType{ key1 : value1 , key2 : value2 ,...}

Ví dụ

Ví dụ này cho thấy cách tạo bản đồ trong Go. Lưu ý thứ tự trong mã và trong đầu ra

package main
import ("fmt")

func main() {
  var a = map[string]string{"brand": "Ford", "model": "Mustang", "year": "1964"}
  b := map[string]int{"Oslo": 1, "Bergen": 2, "Trondheim": 3, "Stavanger": 4}

  fmt.Printf("a\t%v\n", a)
  fmt.Printf("b\t%v\n", b)
}

Kết quả:

a   map[brand:Ford model:Mustang year:1964]
b   map[Bergen:2 Oslo:1 Stavanger:4 Trondheim:3]
Hãy tự mình thử »

Lưu ý: Thứ tự của các thành phần bản đồ được xác định trong mã khác với cách chúng được lưu trữ. Dữ liệu được lưu trữ theo cách để truy xuất dữ liệu hiệu quả từ bản đồ.



Tạo bản đồ bằng make() :

Cú pháp

var a = make(map[KeyType]ValueType)
b := make(map[KeyType]ValueType)

Ví dụ

Ví dụ này cho thấy cách tạo bản đồ trong Go bằng hàm make() .

package main
import ("fmt")

func main() {
  var a = make(map[string]string) // The map is empty now
  a["brand"] = "Ford"
  a["model"] = "Mustang"
  a["year"] = "1964"
                                  // a is no longer empty
  b := make(map[string]int)
  b["Oslo"] = 1
  b["Bergen"] = 2
  b["Trondheim"] = 3
  b["Stavanger"] = 4

  fmt.Printf("a\t%v\n", a)
  fmt.Printf("b\t%v\n", b)
}

Kết quả:

a   map[brand:Ford model:Mustang year:1964]
b   map[Bergen:2 Oslo:1 Stavanger:4 Trondheim:3]
Hãy tự mình thử »

Tạo một bản đồ trống

Có hai cách để tạo một bản đồ trống. Một là sử dụng hàm make() và hai là sử dụng cú pháp sau.

Cú pháp

var a map[KeyType]ValueType

Lưu ý: Hàm make() là cách phù hợp để tạo bản đồ trống. Nếu bạn tạo một bản đồ trống theo một cách khác và ghi vào đó, nó sẽ gây ra tình trạng hoảng loạn khi chạy.

Ví dụ

Ví dụ này cho thấy sự khác biệt giữa việc khai báo một bản đồ trống bằng cách sử dụng hàm make() và không sử dụng hàm này.

package main
import ("fmt")

func main() {
  var a = make(map[string]string)
  var b map[string]string

  fmt.Println(a == nil)
  fmt.Println(b == nil)
}

Kết quả:

false
true
Hãy tự mình thử »

Các loại khóa được phép

Khóa bản đồ có thể thuộc bất kỳ loại dữ liệu nào mà toán tử đẳng thức ( == ) được xác định. Bao gồm các:

  • Boolean
  • số
  • Dây
  • Mảng
  • Con trỏ
  • Cấu trúc
  • Giao diện (miễn là loại động hỗ trợ sự bình đẳng)

Các loại khóa không hợp lệ là:

  • lát
  • Bản đồ
  • Chức năng

Những loại này không hợp lệ vì toán tử đẳng thức ( == ) không được xác định cho chúng.


Loại giá trị được phép

Các giá trị bản đồ có thể là bất kỳ loại nào.


Truy cập các phần tử bản đồ

Bạn có thể truy cập các thành phần bản đồ bằng cách:

Cú pháp

value = map_name [key]

Ví dụ

package main
import ("fmt")

func main() {
  var a = make(map[string]string)
  a["brand"] = "Ford"
  a["model"] = "Mustang"
  a["year"] = "1964"

  fmt.Printf(a["brand"])
}

Kết quả:

Ford
Hãy tự mình thử »

Cập nhật và thêm các thành phần bản đồ

Việc cập nhật hoặc thêm một phần tử được thực hiện bằng cách:

Cú pháp

map_name [key] = value

Ví dụ

Ví dụ này cho thấy cách cập nhật và thêm các phần tử vào bản đồ.

package main
import ("fmt")

func main() {
  var a = make(map[string]string)
  a["brand"] = "Ford"
  a["model"] = "Mustang"
  a["year"] = "1964"

  fmt.Println(a)

  a["year"] = "1970" // Updating an element
  a["color"] = "red" // Adding an element

  fmt.Println(a)
}

Kết quả:

map[brand:Ford model:Mustang year:1964]
map[brand:Ford color:red model:Mustang year:1970]
Hãy tự mình thử »

Xóa phần tử khỏi bản đồ

Việc xóa các phần tử được thực hiện bằng hàm delete() .

Cú pháp

delete( map_name , key)

Ví dụ

package main
import ("fmt")

func main() {
  var a = make(map[string]string)
  a["brand"] = "Ford"
  a["model"] = "Mustang"
  a["year"] = "1964"

  fmt.Println(a)

  delete(a,"year")

  fmt.Println(a)
}

Kết quả:

map[brand:Ford model:Mustang year:1964]
map[brand:Ford model:Mustang]
Hãy tự mình thử »

Kiểm tra các yếu tố cụ thể trong bản đồ

Bạn có thể kiểm tra xem một khóa nhất định có tồn tại trên bản đồ hay không bằng cách sử dụng:

Cú pháp

val , ok := map_name [key]

Nếu bạn chỉ muốn kiểm tra sự tồn tại của một khóa nhất định, bạn có thể sử dụng mã định danh trống ( _ ) thay cho val.

Ví dụ

package main
import ("fmt")

func main() {
  var a = map[string]string{"brand": "Ford", "model": "Mustang", "year": "1964", "day":""}

  val1, ok1 := a["brand"]  // Checking for existing key and its value
  val2, ok2 := a["color"]  // Checking for non-existing key and its value
  val3, ok3 := a["day"]    // Checking for existing key and its value
  _, ok4 := a["model"]     // Only checking for existing key and not its value

  fmt.Println(val1, ok1)
  fmt.Println(val2, ok2)
  fmt.Println(val3, ok3)
  fmt.Println(ok4)
}

Kết quả:

Ford true
 false
 true
true
Hãy tự mình thử »

Ví dụ giải thích

Trong ví dụ này, chúng tôi đã kiểm tra sự tồn tại của các khóa khác nhau trên bản đồ.

Chìa khóa " color " không tồn tại trên bản đồ. Vì vậy giá trị là một chuỗi rỗng ('').

Biến ok2 được sử dụng để tìm hiểu xem khóa có tồn tại hay không. Bởi vì chúng ta sẽ có cùng giá trị nếu giá trị của khóa "color" trống. Đây là trường hợp của val3 .


Bản đồ là tài liệu tham khảo

Bản đồ là tham chiếu đến bảng băm.

Nếu hai biến bản đồ tham chiếu đến cùng một bảng băm, việc thay đổi nội dung của một biến sẽ ảnh hưởng đến nội dung của biến kia.

Ví dụ

package main
import ("fmt")

func main() {
  var a = map[string]string{"brand": "Ford", "model": "Mustang", "year": "1964"}
  b := a

  fmt.Println(a)
  fmt.Println(b)

  b["year"] = "1970"
  fmt.Println("After change to b:")

  fmt.Println(a)
  fmt.Println(b)
}

Kết quả:

map[brand:Ford model:Mustang year:1964]
map[brand:Ford model:Mustang year:1964]
After change to b:
map[brand:Ford model:Mustang year:1970]
map[brand:Ford model:Mustang year:1970]
Hãy tự mình thử »

Lặp lại bản đồ

Bạn có thể sử dụng range để lặp lại trên bản đồ.

Ví dụ

Ví dụ này cho thấy cách lặp lại các phần tử trong bản đồ. Lưu ý thứ tự của các phần tử trong đầu ra.

package main
import ("fmt")

func main() {
  a := map[string]int{"one": 1, "two": 2, "three": 3, "four": 4}

  for k, v := range a {
    fmt.Printf("%v : %v, ", k, v)
  }
}

Kết quả:

two : 2, three : 3, four : 4, one : 1,
Hãy tự mình thử »

Lặp lại các bản đồ theo một thứ tự cụ thể

Bản đồ là cấu trúc dữ liệu không có thứ tự. Nếu bạn cần lặp lại trên bản đồ theo một thứ tự cụ thể, bạn phải có cấu trúc dữ liệu riêng chỉ định thứ tự đó.

Ví dụ

package main
import ("fmt")

func main() {
  a := map[string]int{"one": 1, "two": 2, "three": 3, "four": 4}

  var b []string              // defining the order
  b = append(b, "one", "two", "three", "four")

  for k, v := range a {         // loop with no order
    fmt.Printf("%v : %v, ", k, v)
  }

  fmt.Println()

  for _, element := range b {   // loop with the defined order
    fmt.Printf("%v : %v, ", element, a[element])
  }
}

Kết quả:

two : 2, three : 3, four : 4, one : 1,
one : 1, two : 2, three : 3, four : 4,
Hãy tự mình thử »

×

Liên hệ bán hàng

Nếu bạn muốn sử dụng dịch vụ của Example.com.vn với tư cách là một tổ chức giáo dục, nhóm hoặc doanh nghiệp, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Báo cáo lỗi

Nếu bạn muốn báo cáo lỗi hoặc nếu bạn muốn đưa ra đề xuất, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Example.com.vn được tối ưu hóa cho việc học tập và đào tạo. Các ví dụ có thể được đơn giản hóa để cải thiện khả năng đọc và học. Các hướng dẫn, tài liệu tham khảo và ví dụ liên tục được xem xét để tránh sai sót, nhưng chúng tôi không thể đảm bảo tính chính xác hoàn toàn của mọi nội dung. Khi sử dụng W3Schools, bạn đồng ý đã đọc và chấp nhận các điều khoản sử dụng , chính sách cookie và quyền riêng tư của chúng tôi.

Bản quyền 1999-2024 của Refsnes Data. Đã đăng ký Bản quyền. Example.com.vn được cung cấp bởi W3.CSS .