Golang语法错误:写入文件时出现意外的EOF

Getting a syntax error: unexpected EOF on the last line of code which is a bracket. It has something to do with File IO because the JSON code worked before I added that in

b, err := json.Marshal(gfjson)
    if err != nil {
        panic(err)

    filename := ".gfjson"

    f, err := os.Create(filename)
    if err != nil {
        panic(err)
    }
    // close file on exit and check for returned error
    defer func() {
        if err := f.Close(); err != nil {
            panic(err)
        }
    }()


    if _, err := f.Write(b); err != nil {
        panic(err)
    }

    fmt.Fprintf(os.Stdout, "GFJSON file successfully created.
")
}

You are missing a closing bracket on line 4 after the panic.

if err != nil {
    panic(err)
}

Your code actually compiles fine for me, but this is because you have a random closing brace at the end balancing it out. I assume from you indentations that the close brace at the end is then end of your function and only the panic should be part of the if statement.