Проверяет знание метода Range для перебора элементов sync.Map в Go.
В Go структура sync.Map предоставляет метод Range для перебора всех хранящихся элементов. Этот метод принимает функцию обратного вызова, которая вызывается для каждой пары ключ-значение. Если функция возвращает false, перебор досрочно завершается.
package main
import (
"fmt"
"sync"
)
func main() {
var m sync.Map
m.Store("key1", "value1")
m.Store("key2", "value2")
m.Range(func(key, value interface{}) bool {
fmt.Printf("%v: %v\n", key, value)
return true // продолжаем перебор
})
}Range — единственный способ итерации по sync.Map, обеспечивающий потокобезопасность. Его следует использовать вместо прямого перебора, когда карта может изменяться конкурентно.