Rumah >pembangunan bahagian belakang >Golang >Adakah Menggunakan `list.List` Cara Terbaik untuk Membuat Peta Go dengan Kunci Rentetan dan Nilai Senarai?

Adakah Menggunakan `list.List` Cara Terbaik untuk Membuat Peta Go dengan Kunci Rentetan dan Nilai Senarai?

Susan Sarandon
Susan Sarandonasal
2024-12-09 13:16:15445semak imbas

Is Using `list.List` the Best Way to Create a Go Map with String Keys and List Values?

Buat Peta Rentetan untuk Senaraikan

Masalah:

Anda mahu mencipta Peta dengan kekunci rentetan jenis dan nilai jenis Senarai. Adakah coretan kod berikut pendekatan yang betul:

package main

import (
    "fmt"
    "container/list"
)

func main() {
    x := make(map[string]*list.List)

    x["key"] = list.New()
    x["key"].PushBack("value")

    fmt.Println(x["key"].Front().Value)
}

Jawapan:

Coretan kod yang anda berikan memang mencipta Peta rentetan ke Senarai, tetapi mungkin tidak menjadi pendekatan yang paling berkesan. Apabila bekerja dengan Lists in Go, slice biasanya merupakan pilihan yang lebih sesuai kerana kelebihan prestasinya.

Menggunakan Slices:

Coretan kod berikut menunjukkan cara menggunakan kepingan bukannya Senarai:

package main

import "fmt"

func main() {
    x := make(map[string][]string)

    x["key"] = append(x["key"], "value")
    x["key"] = append(x["key"], "value1")

    fmt.Println(x["key"][0])
    fmt.Println(x["key"][1])
}

Faedah Penggunaan Slices:

Slices menawarkan beberapa kelebihan berbanding Senarai, termasuk:

  • Prestasi: Slices lebih cekap apabila mengakses dan mengubah suai elemen berbanding dengan Senarai.
  • Kemudahan Penggunaan: Kepingan mempunyai lebih ringkas sintaks, menjadikannya lebih mudah untuk digunakan.
  • Fungsi Terbina Dalam: Slices menyediakan pelbagai fungsi terbina dalam untuk operasi seperti menyusun, mencari dan menghiris.

Atas ialah kandungan terperinci Adakah Menggunakan `list.List` Cara Terbaik untuk Membuat Peta Go dengan Kunci Rentetan dan Nilai Senarai?. 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