Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah peta dalam bahasa Go?

Apakah peta dalam bahasa Go?

王林
王林asal
2023-06-09 21:06:05868semak imbas

Bahasa Go ialah bahasa pengaturcaraan sumber terbuka Ia adalah bahasa pengaturcaraan peringkat sistem yang dibangunkan oleh Google dan digunakan secara meluas dalam projek berprestasi tinggi dan berskala besar. Antaranya, peta dalam bahasa Go adalah jenis data yang sangat penting, yang digunakan secara meluas dalam pelbagai jenis pembangunan. Artikel ini akan memperkenalkan peta dalam bahasa Go dan cara menggunakannya.

1. Apakah itu peta

Dalam bahasa Go, peta ialah struktur data yang serupa dengan jadual cincang. Peta tidak tersusun dan terdiri daripada satu set pasangan nilai kunci, dengan setiap kunci muncul sekali sahaja. Kekunci dalam peta mestilah jenis data yang menyokong perbandingan kesamaan, seperti rentetan, nombor, bool, dsb. Nilai boleh berupa apa-apa jenis data, seperti rentetan, nombor, struktur, kepingan, dsb.

Pengisytiharan peta dalam bahasa Go memerlukan penggunaan fungsi make, seperti yang ditunjukkan di bawah:

var mapName = make(map[keyType]valueType)

Di mana, mapName ialah nama pembolehubah peta, keyType ialah jenis kunci , dan valueType ialah jenis nilai. Sebagai contoh, kita boleh mengisytiharkan peta dengan jenis rentetan utama dan jenis nilai int, seperti berikut:

var myMap = make(map[string]int)

2. Operasi peta

  1. Tambah elemen

Untuk menambah elemen pada peta, anda perlu menggunakan simbol tugasan untuk tugasan, seperti yang ditunjukkan di bawah:

myMap["one"] = 1
myMap["two"] = 2

Dalam contoh di atas, kami menambah dua pasangan nilai kunci pada myMap, di mana kunci ialah "satu" dan "dua", nilai yang sepadan ialah 1 dan 2.

  1. Dapatkan elemen

Untuk mendapatkan elemen dalam peta, anda boleh menggunakan operator subskrip [], seperti ditunjukkan di bawah:

value := myMap["one"]

Dalam perkara di atas contoh , kami menggunakan operator subskrip [] untuk mendapatkan nilai dengan kekunci "satu" dalam myMap dan menyimpannya dalam nilai pembolehubah.

Perlu diambil perhatian bahawa jika kunci tidak wujud dalam peta, nilai sifar yang sepadan dengan jenis nilai akan dikembalikan. Sebagai contoh, jika kita mendapat kunci yang tidak wujud seperti ini:

value := myMap["three"]

maka nilai nilai pembolehubah akan menjadi nilai sifar 0 jenis int.

  1. Ubah suai elemen

Untuk mengubah suai elemen dalam peta, anda boleh terus menggunakan operator subskrip [] untuk menetapkan nilai, seperti yang ditunjukkan di bawah:

myMap["one"] = 100

Dalam contoh di atas, kami menukar nilai kunci "satu" dalam myMap kepada 100.

  1. Padam elemen

Untuk memadamkan elemen daripada peta, anda boleh menggunakan fungsi padam dalam bahasa Go, seperti yang ditunjukkan di bawah:

delete(myMap, "one")

In contoh di atas, kami mengalih keluar elemen dengan kunci "satu" daripada myMap.

  1. Dapatkan panjang peta

Untuk mendapatkan panjang peta, anda boleh menggunakan fungsi len dalam bahasa Go, seperti yang ditunjukkan di bawah:

length := len(myMap)

Dalam contoh di atas, kita mendapat panjang myMap dan menyimpannya dalam panjang berubah.

3. Rentasi peta

Terdapat banyak cara untuk melintasi peta, kaedah yang paling biasa adalah menggunakan gelung for, seperti yang ditunjukkan di bawah:

for key, value := range myMap {
    fmt.Println(key, value)
}

Dalam contoh di atas, Kami mengulangi semua pasangan nilai kunci dalam myMap dan mengeluarkannya ke konsol.

Perlu diambil perhatian bahawa peta tidak tertib semasa traversal, dan susunan pasangan nilai kunci yang dikembalikan setiap kali ia dilalui adalah rawak.

4. Ciri peta

  1. Keselamatan benang

Secara lalai, peta tidak selamat untuk benang. Jika berbilang urutan mengubah suai peta yang sama pada masa yang sama, persaingan data dan ketidakkonsistenan data akan berlaku. Untuk menyelesaikan masalah ini, bahasa Go menyediakan pakej penyegerakan, di mana jenis penyegerakan.Peta boleh melaksanakan peta selamat benang.

  1. Tidak menyokong pengendali perbandingan

Jenis utama peta mesti menyokong pengendali perbandingan kesaksamaan, seperti rentetan, nombor, bool, dsb., tetapi menghiris dalam bahasa Go , struktur dan jenis lain tidak menyokong pengendali perbandingan kesaksamaan. Jika anda ingin menggunakan jenis ini sebagai kunci dalam peta, anda boleh menggunakan penunjuk atau menulis fungsi perbandingan tersuai.

  1. Penskalaan dinamik

Pelaksanaan asas peta ialah jadual cincang apabila elemen dalam peta bertambah atau berkurang, jadual cincang asas juga akan berkembang dan mengecut secara dinamik . Proses ini memperuntukkan lebih banyak memori dan mengira semula nilai cincang. Oleh itu, prestasi operasi peta akan terjejas apabila memproses sejumlah besar data.

Kesimpulan

Dalam artikel ini, kami memperkenalkan peta dalam bahasa Go, yang merupakan jenis data yang sangat penting dan digunakan secara meluas dalam pelbagai jenis pembangunan. Kami mempelajari apa itu peta, cara mengendalikan peta dan sifatnya. Saya berharap melalui pengenalan artikel ini, pembaca boleh mempunyai pemahaman yang mendalam tentang peta dalam bahasa Go dan membantu membangunkan aplikasi yang lebih cekap dan stabil.

Atas ialah kandungan terperinci Apakah peta dalam bahasa Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn