我的数据以前被序列化为fmt.Sprintf("%+v", d)
,d
是struct
个实例。有没有办法扫描回来?我在下面使用fmt.Sscanf()
的天真尝试失败了(Go Playground)。
package main
import (
"fmt"
)
type data struct {
f int
}
func main() {
x := data{1}
s := fmt.Sprintf("%+v", x)
var y data
n, err := fmt.Sscanf(s, "%+v", &y)
fmt.Printf("s=%s, n=%d, err=%+v, y=%+v\n", s, n, err, y)
}
输出结果为:
s={f:1}, n=0, err=can't scan type: *main.data, y={f:0}
有没有办法扫描结构?