Как объяснить синтаксис этой карты? - PullRequest
0 голосов
/ 05 января 2019

Я прохожу следующую структуру данных Go Lang Map. Я немного запутался с синтаксисом -

//this is fine
countryCapitalMap = make(map[string]string)
/* insert key-value pairs in the map*/
countryCapitalMap["France"] = "Paris"
capital, ok := countryCapitalMap["United States"]

/* print map using keys*/
for country := range countryCapitalMap {
    fmt.Println("Capital of", country, "is", countryCapitalMap[country])
}

Это то, что countryCapitalMap ["United States"] возвращает два возвращаемых значения из следующей строки

capital, ok := countryCapitalMap["United States"]

Или countryCapitalMap [страна] возвращает одно значение из следующей строки

fmt.Println("Capital of", country, "is", countryCapitalMap[country])

Как я могу расшифровать этот синтаксис? Основано ли оно на , где и с каким оператором используется выражение?

1 Ответ

0 голосов
/ 05 января 2019

Как я могу расшифровать этот синтаксис?

Прочитайте определение синтаксиса.

Первичное выражение вида

a[x]

обозначает элемент карты с индексом x. Значение x называется индексом или ключом карты.

Существует специальная форма индексного выражения на карте.

v, ok = a[x]
v, ok := a[x]
var v, ok = a[x]

возвращает дополнительное нетипизированное логическое значение. Значение ok равно true, если ключ x присутствует на карте, и false в противном случае.


Спецификация языка программирования Go

Индексные выражения

Первичное выражение вида

a[x]

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

Для карты типа M:

  • тип x должен быть назначен типу ключа M

  • , если карта содержит запись с ключом x, a [x] является элементом карты с ключом x, а тип [x] является типом элемента M

  • если карта равна нулю или не содержит такой записи, a [x] является нулевым значением для типа элемента M

В противном случае [x] недопустимо.

Индексное выражение на карте a типа map [K] V, используемое в назначении или инициализация специальной формы

v, ok = a[x]
v, ok := a[x]
var v, ok = a[x]

дает дополнительное нетипизированное логическое значение. Значение ok верно, если ключ x присутствует на карте, в противном случае - false.


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...