Exported and Unexported fields in Go Language
<p>I have a function in Go, the return value of which I hope to encode using gob. The return value is a struct pointer. However even though I do understand what exported variables are, I am not quite sure how to get it working.</p>

<p>Here is what my function is like</p>

<pre><code>fun loadXYZ(root *structABC) *structABC{
    const once = "stateData.bin"
    rd, errr := ioutil.ReadFile(once)
    if errr!=nil{

        //Do some computation and store in "root"

        buf := &amp;bytes.Buffer{}
        errr = gob.NewEncoder(buf).Encode(root)
        if errr != nil {
            panic(errr)
        }
        errr = ioutil.WriteFile(once, buf.Bytes(), 0666)
        if errr != nil {
            panic(errr)
        }
        return root
    }
    var d *structABC
    errr = gob.NewDecoder(bytes.NewReader(rd)).Decode(&amp;d)
    if errr != nil {
         panic(errr)
    }
    return d
}
</code></pre>

<p>This is the error I get</p>

<pre><code>panic: gob: type main.stateNode has no exported fields
</code></pre>

<p>I know why the error is occurring. But can someone help me solve it?</p>