РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
858 of 1593 menu

Метод sync.Map.Store

Метод sync.Map.Store сохраняет значение по ключу в конкурентно-безопасной карте. В первый параметр мы передаем ключ, во второй параметр мы передаем значение, которое нужно сохранить. Если ключ уже существует в карте, метод перезаписывает соответствующее ему значение.

Синтаксис

m.Store(key, value)

Пример

Давайте создадим sync.Map и сохраним в ней несколько пар ключ-значение:

package main import ( "fmt" "sync" ) func main() { var m sync.Map m.Store("name", "John") m.Store("age", 30) name, _ := m.Load("name") age, _ := m.Load("age") fmt.Println(name, age) }

Результат выполнения кода:

"John" 30

Пример

Давайте сохраним значение по ключу, который уже существует в карте. Метод перезапишет старое значение:

package main import ( "fmt" "sync" ) func main() { var m sync.Map m.Store("city", "Moscow") m.Store("city", "Saint Petersburg") value, _ := m.Load("city") fmt.Println(value) }

Результат выполнения кода:

"Saint Petersburg"

Пример

Метод sync.Map.Store безопасен для использования из нескольких горутин. Давайте сохраним значения в конкурентной среде:

package main import ( "fmt" "sync" ) func main() { var m sync.Map var wg sync.WaitGroup for i := 0; i < 100; i++ { wg.Add(1) go func(index int) { defer wg.Done() m.Store(index, fmt.Sprintf("value-%d", index)) }(i) } wg.Wait() value, _ := m.Load(50) fmt.Println(value) }

Результат выполнения кода:

"value-50"

Смотрите также

  • метод sync.Map.Load,
    который загружает значение по ключу
  • метод sync.Map.LoadOrStore,
    который загружает значение или сохраняет новое
  • метод sync.Map.Delete,
    который удаляет значение по ключу
  • тип sync.Map,
    который представляет конкурентно-безопасную карту
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить