«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Является ли использование list.List лучшим способом создания карты Go со строковыми ключами и значениями списка?

Является ли использование list.List лучшим способом создания карты Go со строковыми ключами и значениями списка?

Опубликовано 19 декабря 2024 г.
Просматривать:381

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

Создайте карту строк для списка

Проблема:

Вы хотите создать карту с ключами типа string и значения типа List. Является ли следующий фрагмент кода правильным подходом:

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)
}

Ответ:

Предоставленный вами фрагмент кода действительно создает карту строки в списке, но, возможно, это не самый эффективный подход. При работе со списками в Go срезы, как правило, являются более подходящим выбором из-за их преимуществ в производительности.

Использование срезов:

В следующем фрагменте кода показано, как использовать срезы. вместо списков:

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])
}

Преимущества использования срезов:

Срезы имеют ряд преимуществ перед списками, в том числе:

  • Производительность: Срезы более эффективны при доступе и изменении элементов по сравнению с Списки.
  • Простота использования: Срезы имеют более простой синтаксис, что упрощает работу с ними.
  • Встроенные функции: Срезы предоставляют широкий набор встроенных функций для таких операций, как сортировка, поиск и нарезка.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3