这可能是文件路径问题,也可能是关于如何最好地实现接口(interface)的问题。
给定以下非常简单的 yaml:
name: MyYamlName
data: some/relative/path.txt
我想将它解码为以下结构:
type VerySimple struct {
name string
data io.Reader
}
我已经在使用 yaml.v2 library ,并且知道对于简单类型,我可以实现 Unmarshaller界面。但是,在我的程序中,我不能假设一个绝对根,data
字段中的相对路径基于该绝对根。
有没有一种方法可以实现 Unmarshaller
接口(interface)来传递工作目录,或者可能有一种不同的方法来处理 Go 中的相对路径?
最佳答案
从 API documentation 可以很清楚地看出这不受支持。支持它的自然方式,IMO,将使用解码器类型,类似于 json.Decoder
类型。它可以使用根包含路径或要搜索的包含路径列表进行初始化。
有already a request对于这样的功能。它确实提到了处理多个文档,这可能意味着包含一个包含路径,尽管尚未明确提及该特定功能。我建议在该线程中提供您的想法。
关于go - yaml.v2 Unmarshaller 接口(interface)的有状态实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47731919/