尝试附加相同类型的结构时,Go返回错误

尝试附加相同类型的结构时,Go返回错误,go,yaml,Go,Yaml,尝试使用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 这是代码 主程序包 进口( “fmt” “gopkg.in/yaml.v2”

尝试使用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
这是代码

主程序包
进口(
“fmt”
“gopkg.in/yaml.v2”
“io/ioutil”
“操作系统”
)
类型MapUsers[]struct{
Userarn字符串
用户名字符串
组[]字符串
}
func main(){
文件名:=os.Args[1]
var配置映射用户
source,err:=ioutil.ReadFile(文件名)
如果错误!=零{
恐慌(错误)
}
err=yaml.Unmarshal(源和配置)
如果错误!=零{
恐慌(错误)
}
configs=追加(configs,configs)
fmt.Printf(“值:%#v\n”,配置)
}
以下是数据:

- userarn: "aaaaaaaaaaaa"
  username: "bbbbbbbbbb"
  groups:
    - "ccccccccccc"

我做错了什么?

您的追加语法似乎有误。应该是这样的

configs=append(configs,test)

追加
函数一个包含新结构的新切片,因此您可以将其放入旧的
配置
变量中

来自golang tour:

评论后编辑:

我没有意识到您的
配置
不是一个切片。其内容应如下:

var配置[]映射用户


在类型之前应该有一个
[]
来显示它是一个切片。

test=append(configs,configs…
谢谢。但这并没有改变什么。错误相同:无法将测试(类型MapUsers)用作类型结构…现在我得到以下信息:无法解组!!映射到main.mapUsers我看到您没有将我的更改添加到代码中。追加行仍然错误,配置仍然不是切片。请看一看互联网上的教程,从更简单的整数开始学习切片的工作原理。欢迎来到围棋世界:)