Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Словари и списки
Словарь — это набор данных, доступ к которым осуществляется не по индексу, а по ключу. В качестве ключа можно указать, например, число или строку. Помимо словарей в этой главе мы рассмотрим структуру List
из пакета container/list
, которая реализует двусвязный список, позволяющий хранить данные произвольных типов.
Словари
Словарь (его еще называют ассоциативным массивом) — это набор данных, доступ к которым осуществляется не по индексу, а по ключу. В качестве ключа можно указать, например, число или строку. Следует заметить, что элементы в словарях располагаются в произвольном порядке. Чтобы получить элемент, необходимо указать ключ, который использовался при сохранении значения.
Объявление и инициализация словаря
Объявление и инициализация словаря выглядит следующим образом:
var <Переменная> map[<Тип ключа>]<Тип значения> =
map[<Тип ключа>]<Тип значения>{
<Ключ 1>: <Значение 1>,
...
<Ключ N>: <Значение N>,
}
Пример объявления словаря с ключами типа string
и значениями типа int
:
var dict map[string]int
fmt.Printf("%T\n", dict) // map[string]int
fmt.Println(dict) // map[]
fmt.Printf("%v\n", dict) // map[]
fmt.Printf("%#v\n", dict) // map[string]int(nil)
При объявлении элементам словаря можно присвоить начальные значения. Для этого после объявления указывается оператор =
, далее идет ключевое слово map
после которого внутри квадратных скобок задается тип ключей и после закрывающей квадратной скобки передается тип элементов словаря, а затем перечисляются пары ключ: значение
через запятую внутри фигурных скобок. Пример инициализации словаря:
var dict map[string]int = map[string]int{"a": 10, "b": 20}
fmt.Println(dict) // map[a:10 b:20]
fmt.Printf("%v\n", dict) // map[a:10 b:20]
fmt.Printf("%#v\n", dict) // map[string]int{"a":10, "b":20}
Если выполняется инициализация, то тип данных можно не указывать:
var dict = map[string]int{"a": 10, "b": 20}
fmt.Println(dict) // map[a:10 b:20]
Можно также использовать сокращенный формат объявления локальной переменной:
dict := map[string]int{"a": 10, "b": 20}
fmt.Printf("%T\n", dict) // map[string]int
fmt.Println(dict) // map[a:10 b:20]
Создать пустой словарь можно так:
dict := map[string]int{}
fmt.Println(dict) // map[]
Допускается указывать пары ключ: значение
на отдельных строках. В этом случае после последней пары должна стоять завершающая запятая или закрывающая фигурная скобка:
dict := map[string]int{
"a": 10,
"b": 20, // Завершающая запятая обязательна!
}
fmt.Println(dict) // map[a:10 b:20]
dict2 := map[string]int{
"c": 30,
"d": 40}
fmt.Println(dict2) // map[c:30 d:40]
Пример присваивания словаря после объявления:
var dict map[string]int
dict = map[string]int{"a": 10, "b": 20}
fmt.Println(dict) // map[a:10 b:20]
Для создания словаря можно также воспользоваться глобальной функцией make()
. Формат функции:
make(<Тип словаря>[, <Число элементов>]) Type
Если второй параметр указан, то выделяется место для хранения заданного числа элементов. Пример создания пустого словаря:
dict := make(map[string]int)
fmt.Println(dict) // map[]
Реквизиты
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов