Ich bin ziemlich neu in Go und habe Probleme mit einem Code-Snippet, das Mux-Gorilla-Sitzungen/Cookies verwendet. Es gibt eine Menge von Redundanz, die ich mit der folgenden Funktion reduzieren möchten:Undefined Rückgabetyp in Go
func isLoggedIn(w http.ResponseWriter, r *http.Request) (bool, *Session) {
session, err := store.Get(r, "user")
var logged bool = true
if err != nil { // Need to delete the cookie.
expired := &http.Cookie{Path: "/", Name: "user", MaxAge: -1, Expires: time.Now().Add(-100 * time.Hour)}
http.SetCookie(w, expired)
logged := false
}
return logged, session
}
Leider bekomme ich folgende Kompilierungsfehler: undefined: Session
Wie dieser Typ nicht definiert werden kann, wenn es durch die zurückgegeben werden können store.Get Funktion? Beachten Sie, dass das Geschäft zuvor unter Verwendung des "Gorilla/Sitzungen" -Pakets als store = sessions.NewCookieStore([]byte(secret))
deklariert wurde.
Wenn ich also eine Funktion haben, die einen Typ zurückgibt, die nicht importiert wird noch .. als Solange ich diesen Typ nicht speziell verwende, brauche ich das sowieso nicht? – jhc
Ich bin nicht klar auf Ihre Frage; Wenn Sie den Typ explizit benennen (wie in Ihrer Funktionssignatur), müssen Sie den Import einschließen –
Wenn Sie den Typ niemals explizit benennen (dh in der Funktionssignatur oder anderswo), können Sie den zurückgegebenen Wert ohne Import verwenden . –