自定义UnmarshalYAML,如何在自定义类型上实现Unmarshaler接口

自定义UnmarshalYAML,如何在自定义类型上实现Unmarshaler接口,第1张

自定义UnmarshalYAML,如何在自定义类型上实现Unmarshaler接口

由于@Volker并未发布他的评论作为答案,因此我会为了完整性而这样做。
所以我已经走在正确的道路上,但是在初始化它时却无法取消引用我的结构的指针接收器:

// Implements the Unmarshaler interface of the yaml pkg.func (e *EpnSeq) UnmarshalYAML(unmarshal func(interface{}) error) error {    yamlEpnSequence := make([]uint16, 0)    err := unmarshal(&yamlEpnSequence)    if err != nil {        return err    }    // make sure to dereference before assignment,     // otherwise only the local variable will be overwritten    // and not the value the pointer actually points to    *e = make(EpnSeq, len(yamlEpnSequence))    for priority, epn := range yamlEpnSequence {        e[epn] = uint16(priority) // no crash anymore    }    return nil}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5170702.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存