Go语法错误,括号不平衡

When I'm trying to run my app it says that there is an unexpected } in line 32, I have counted { and }, seems they are even but when I remove f1, f2 and p it works well. How can I fix this?

package main

import (
    "fmt"
    "log"
    "net/http"
    "html/template"
)

type friend struct{
    fname   string
}

type person struct{
    username    string
    emails      []string
    friends     []*friend
}

func home(w http.ResponseWriter, r *http.Request){
    f1 := friend{fname: "minux.ma"}
    f2 := friend{fname: "xushiwei"}
    p := Person{
        userName: "Astaxie",
        emails: []string{"astaxie@beego.me", "astaxie@gmail.com"},
        friends: []*Friend{&f1, &f2}
    }

    t, err := template.ParseFiles("template.gtpl")
    if err != nil{
        fmt.Println(err)
    }

    t.Execute(w, nil)
}

func main(){

    http.HandleFunc("/", home)
    err := http.ListenAndServe(":8000", nil)
    if err != nil{
        log.Fatal("listen and serve:", err)
    }
}

There's an unexpected }, because you're missing a comma on the end of the friends line

friends: []*Friend{&f1, &f2},

Always go fmt your code. (or use goimports). It will give you an error with the exact line and column:

missing ',' before newline in composite literal