Golang Ошибка — cannot use Id (type interface {}) as type string in field value: need type assertion?

Добрый день, использую сессии от сюда -"github.com/gorilla/sessions"
websocket "code.google.com/p/go.net/websocket"
Сначала создал сессию, как и написано на оф.сайте
Такой вариант работает-
session, _ := store.Get(r, "SessionId") // r- Request
log.Println("Значение из сессии Id=",session.Values["Id"]," и FIO=",session.Values["FIO"])

Нужно ещё с этими данными работать и я их сохраняю...
Но такой вариант не работает

var ActiveClients = make(map[int ] ClientConn)

type ClientConn struct {
websocket *websocket.Conn
Socket_Id int
User_Id string
FIO string
Role string
}

func SockServer(ws *websocket.Conn) {
session, _ := store.Get(r, "SessionId")
Id =session.Values["Id"]
FIO =string(session.Values["FIO"])
Role =session.Values["Role"]
sockCli := ClientConn{ws, Soc_Id,Id,FIO,Role}
ActiveClients[Soc_Id] = sockCli
log.Println("Клиент подключился сокет=",Soc_Id,". id- ",Id," ФИО- ",FIO," Роль- ",Role)
}

Пишет
cannot use Id (type interface {}) as type string in field value: need type assertion
здесь sockCli := ClientConn{ws, Soc_Id,Id,FIO,Role}
И для FIO и Role тоже такое-же.
Почему в консоль он string тип выводит, а тут ругается?
  • Вопрос задан
  • 2034 просмотра
Решения вопроса 1
@TwoRS Автор вопроса
Нашёл ответ ru.stackoverflow.com/questions/436325
Id , _ := session.Values["Id"].(string)
FIO , _ := session.Values["FIO"].(string)
Role , _ := session.Values["Role"].(string)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы