Карты типов ссылок - PullRequest
       2

Карты типов ссылок

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

Я пытаюсь разыменовать канал и использовать полезную нагрузку в канале, чтобы проверить, есть ли запись на карте или нет.

Если карта не того типа, она работает, но если карта имееттип я всегда получаю ошибку, что тип <map> не является выражением.

type writechan chan UserProfile
type usersmap map[string]UserProfile
var  myuserprofile UserProfile
myuserprofile = <-myuserchannel
var username = myuserprofile.name

if _, ok := usersmap[username]; ok {
    fmt.Println("Already registered ")
} else {
    usersmap[username] = myuserprofile
}

В сообщении об ошибке говорится, что тип usermap не является выражением "в строке if. Если я не использую тип usermap, но карту нормалей говорит map [string] string, то она работает нормально.

1 Ответ

3 голосов
/ 05 ноября 2019
type usersmap map[string]UserProfile

Это объявление типа , оно не создает переменную с именем usersmap. После этого объявления типа вы можете использовать usersmap (тип) идентификатор для создания переменной, подобной этой:

var umap usersmap

И для ее инициализации:

umap = make(usersmap)

Или в одной строке:

var umap = make(usersmap)

Или с помощью объявления короткой переменной с инициализацией:

umap := usersmap{}

Также для создания переменной типа карты необязательно создаватьновый тип, вы можете просто написать:

var umap = make(map[string]UserProfile)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...