суббота, 12 января 2019 г.

Основы Go: карты (словари)

Карта (map) ассоциирует ключ и значение.

Нулевое значение карты это nil. Нулевая карта не содержит ключи, и ключи не могут быть добавлены.

Функция make возвращает карту заданного типа, инициализированную и готовую к использованию.

package main

import "fmt"

type Vertex struct {
  Lat, Long float64
}

var m map[string]Vertex

func main() {
  m = make(map[string]Vertex)
  m["Bell Labs"] = Vertex{
    40.68433, -74.39967,
  }
  fmt.Println(m["Bell Labs"])
}

Вывод:

{40.68433 -74.39967}

Литералы карт

Литералы карт похожи на литералы структур, но ключи обязательны.

package main

import "fmt"

type Vertex struct {
  Lat, Long float64
}

var m = map[string]Vertex{
  "Bell Labs": Vertex{
    40.68433, -74.39967,
  },
  "Google": Vertex{
    37.42202, -122.08408,
  },
}

func main() {
  fmt.Println(m)
}

Вывод:

map[Bell Labs:{40.68433 -74.39967} 
    Google:{37.42202 -122.08408}]

Если тип верхнего уровня всего лишь имя типа, то вы можете не указывать его для элементов литерала.

package main

import "fmt"

type Vertex struct {
  Lat, Long float64
}

var m = map[string]Vertex{
  "Bell Labs": {40.68433, -74.39967},
  "Google":    {37.42202, -122.08408},
}

func main() {
  fmt.Println(m)
}

Вывод:

map[Bell Labs:{40.68433 -74.39967} 
    Google:{37.42202 -122.08408}]


Читайте также:


Комментариев нет:

Отправить комментарий