Rumah >pembangunan bahagian belakang >Golang >Penggunaan peta golang

Penggunaan peta golang

王林
王林asal
2023-05-10 19:46:05662semak imbas

Golang ialah bahasa pengaturcaraan yang sangat berkuasa dengan kecekapan tinggi dan sintaks yang ringkas serta mudah dipelajari. Apabila bercakap tentang faedah Go, salah satu sebab utama ialah struktur data terbina dalam seperti peta. Dalam artikel ini, kita akan melihat dengan lebih mendalam tentang penggunaan peta Go.

Go map ialah koleksi tidak tertib pasangan nilai kunci, yang bermaksud anda boleh menggunakan sebarang jenis nilai sebagai kunci dan nilai. Pasangan nilai kunci dalam peta tidak disimpan dalam sebarang susunan tertentu, tetapi dalam susunan nilai cincang mereka. Kami akan membincangkan ciri ini dengan lebih lanjut di bawah.

Buat Peta

Untuk mencipta peta dalam Go, anda perlu menggunakan fungsi terbina dalam make(). Mari lihat cara membuat peta dan menambah pasangan nilai kunci padanya.

m := make(map[string]int) // 创建一个字符串为键,int 类型为值的 map
m["foo"] = 42             // 向 map 中添加键为 "foo" 的值为 42
fmt.Println(m["foo"])     // 输出 map 中键为 "foo" 的值,输出 42

Dalam contoh ini, kami mencipta peta dengan kekunci rentetan dan nilai int, dan kemudian kami menambah nilai 42 dengan kekunci "foo" padanya. Baris terakhir kod mengeluarkan nilai dalam peta dengan kunci "foo", jadi kami mendapat output 42.

Terdapat cara alternatif untuk menentukan nilai awal semasa membuat peta. Anda boleh mencubanya seperti berikut:

m := map[string]int {
    "foo": 42,
    "bar": 24,
}

Dalam contoh ini, kami mencipta peta dengan dua pasangan nilai kunci, dengan kunci "foo" mempunyai nilai 42 dan kunci "bar" mempunyai nilai 24 .

Mengakses nilai dalam Peta

Untuk mengakses nilai peta dalam Go, anda boleh menggunakan kaedah berikut:

val, ok := m["foo"]
fmt.Println(val, ok)     // 输出 42, true

Di sini pembolehubah val menyimpan kunci dalam peta sebagai "foo" Nilai , dan pembolehubah ok menunjukkan sama ada terdapat entri dengan kunci "foo" dalam peta.

Jika tiada entri sedemikian dalam peta (iaitu, "foo" bukan kunci), maka pembolehubah ok akan menjadi palsu. Jadi jika anda ingin menyemak sama ada nilai dalam peta berjaya diakses, anda boleh menyemak nilai pembolehubah ok.

Lelaran nilai dalam Peta

Lelaran nilai peta dalam Go adalah mudah, anda boleh menggunakan gelung untuk julat.

m := map[string]int {
    "foo": 42,
    "bar": 24,
}

for k, v := range m {
    fmt.Printf("key: %s, value: %d
", k, v)
}

// 输出:
// key: foo, value: 42
// key: bar, value: 24

Dalam contoh ini, kami menggunakan gelung untuk-julat untuk mengulang kekunci dan nilai dalam peta m dan mengeluarkannya dalam setiap lelaran. Ambil perhatian bahawa sintaks gelung for bukan sahaja melelaran kekunci peta, tetapi juga nilai dalam peta.

Padam nilai dalam Peta

Memadam nilai dalam peta Go juga sangat mudah, anda hanya perlu menggunakan fungsi delete().

m := map[string]int {
    "foo": 42,
    "bar": 24,
}

delete(m, "foo") // 删除 map 中键为 "foo" 的键值对

Dalam contoh ini, kami menggunakan fungsi delete() untuk memadamkan pasangan nilai kunci dengan kekunci "foo" dalam peta. Selepas pemadaman, peta tidak lagi akan mengandungi entri dengan kunci "foo".

Saiz dan kapasiti peta

Dalam Go, peta mempunyai atribut saiz dan kapasiti. Walau bagaimanapun, tidak seperti struktur data dalam bahasa lain, peta dalam Go tidak mempunyai atribut kapasiti yang jelas. Jadi, jika anda ingin mengetahui saiz peta, anda perlu menggunakan fungsi terbina dalam len() seperti yang ditunjukkan di bawah:

m := map[string]int {
    "foo": 42,
    "bar": 24,
}

fmt.Println(len(m)) // 输出长度为 2

Di sini, kami menggunakan fungsi len() untuk mengeluarkan panjang peta m dan keluarannya ialah 2 .

Prestasi peta dan cadangan penggunaan

Peta ialah struktur data yang sangat berkuasa, tetapi ia perlu digunakan dengan berhati-hati. Memandangkan peta ialah jadual cincang dinamik, ramai pembangun menganggapnya lebih pantas daripada struktur data lain. Walau bagaimanapun, dalam penggunaan dunia sebenar, prestasi peta boleh dipengaruhi oleh pengurusan memori dan konflik cincang, mengakibatkan kod yang lebih perlahan.

Berikut ialah beberapa cadangan untuk menggunakan peta Go:

  • Elakkan menambah terlalu banyak pasangan nilai kunci dalam peta. Terlalu banyak pasangan nilai kunci boleh menyebabkan lebih banyak perlanggaran cincang.
  • Untuk situasi di mana peta besar perlu diproses, adalah disyorkan untuk menggunakan penyegerakan selamat serentak.Jenis Peta.
  • Apabila mempertimbangkan prestasi, anda harus mempertimbangkan untuk menggunakan tatasusunan, kepingan atau struktur data lain.

Walau bagaimanapun, peta ialah struktur data yang sangat mudah dan fleksibel. Jika anda menggunakannya dengan cara yang wajar, ia sesuai untuk kod Go anda.

Ringkasan

Dalam artikel ini, kami telah mempelajari tentang penggunaan peta di Golang. Kami telah mempelajari cara membuat, mengakses, mengulang dan memadamkan entri dalam peta, serta cara melihat saiz dan kapasiti peta. Pada masa yang sama, kami juga menyediakan beberapa cadangan tentang penggunaan peta, dengan harapan dapat membantu anda menggunakan struktur data ini dengan lebih baik dalam Go.

Atas ialah kandungan terperinci Penggunaan peta golang. 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