func test(&post) error{}func test() (post Post, err error){}

学习golang期间看到有些内部方法是通过形参形式给参数赋值的,比如json.Unmarshal定义为

    func Unmarshal(data []byte, v interface{}) error {
    // Check for well-formedness.
    // Avoids filling out half a data structure
    // before discovering a JSON syntax error.
    var d decodeState
    err := checkValid(data, &d.scan)
    if err != nil {
        return err
    }

    d.init(data)
    return d.unmarshal(v)
}

为何不定义成如下这种方式

 func Unmarshal(data []byte) (v interface, err error){
    ……
}