Я использую объявленную переменную для возврата структуры. Почему компилятор говорит, что я не использую объявленную переменную?
Я помещаю операторы log.Printf, чтобы помочь отладить ошибку. Почему log.Printf не считается использованием переменной?
import (
"github.com/gorilla/sessions"
)
func profileFromSession(r *http.Request) *workout.Athlete {
session, err := workout.SessionStore.Get(r, defaultSessionID)
log.Printf("$$$$$$$$$$$ session contains %#v", session)
if err != nil {
log.Print("$$$$$$$$ error SessionStore.Get %s", err)
return nil
}
// retrieve Athlete struct and type-assert it.
valAthlete := session.Values[currentAthleteKey]
var athlete = &workout.Athlete{}
log.Printf("before type check athlete is %T", athlete)
if athlete, ok := valAthlete.(*workout.Athlete); !ok {
log.Print("athlete is not the correct Type")
}
log.Printf("profile athlete has %#s", athlete)
return athlete
}
ОШИБКА 2019-07-26 22:00:32,931 instance_factory.py:243] Не удалось собрать приложение Go
/var/folders/mw/0y88j8_54bjc93d_lg3120qw0000gp/T/tmpAqfXoRappengine-go-bin/auth.go:265:33: спортсмен объявлен и не используется
Использование dev_appserver.py версии go1.11.2 darwin/amd64
athlete
, которую вы создаете в оператореif
, которая не используется:if athlete, ok := ...
. Если он вам не нужен, используйте пустой идентификатор:if _, ok := ...
. - person icza   schedule 27.07.2019