Go中结构赋值的简写

时间:2018-01-18 08:32:01

标签: go

我有这三行有效:

mraStr := models.MRA{}
yamlContent := loader.LoadFile("../mraProj/mra.yaml")
mraStr = Parse(yamlContent)

我的问题是,是否有办法在golang中将这两行写成一行?

mraStr := models.MRA{}
mraStr = Parse(yamlContent)

1 个答案:

答案 0 :(得分:4)

鉴于loader.LoadFile(返回单个值)和Parse(返回models.MRA)的隐含签名,您只需使用short variable declaration

mraStr := Parse(loader.LoadFile("../mraProj/mra.yaml"))

如果要指定类型(例如:因为Parse返回一个接口),您可以使用更明确的variable declaration

var mraStr models.MRA = Parse(loader.LoadFile("../mraProj/mra.yaml"))