尝试使用append函数合并两个结构时出现错误:
./test.go:33:18: cannot use configs (type MapUsers) as type struct { Userarn string "yaml:\"userarn\""; Username string "yaml:\"username\""; Groups []string "yaml:\"groups\"" } in append
这是代码。
package main
import (
"fmt"
"gopkg.in/yaml.v2"
"io/ioutil"
"os"
)
type MapUsers []struct {
Userarn string
Username string
Groups []string
}
func main() {
filename := os.Args[1]
var configs MapUsers
source, err := ioutil.ReadFile(filename)
if err != nil {
panic(err)
}
err = yaml.Unmarshal(source, &configs)
if err != nil {
panic(err)
}
configs = append(configs, configs)
fmt.Printf("Value: %#v\n", configs)
}
数据如下:
- userarn: "aaaaaaaaaaaa"
username: "bbbbbbbbbb"
groups:
- "ccccccccccc"
我究竟做错了什么?
最佳答案
您的附加语法似乎错误。应该是这样configs=append(configs,test)
append
为包含新结构的新 slice 提供功能,因此您将其放到旧的configs
变量中。
来自golang游览:https://tour.golang.org/moretypes/15
评论后编辑:
我没有意识到您的configs
并不是片。应该如下:var configs []MapUsers
在类型之前应该有一个[]
,以表明它是一个 slice 。
关于go - 尝试附加相同类型的结构时,Go返回错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55934961/