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

I am getting error trying to merge two structures using append function:

./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

Here is the code.

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
", configs)


}

Here is the data:

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

What am I doing wrong?

Your append syntax seems wrong. It should be like this.

configs=append(configs,test)

append function a new slice including your new struct, so you take it and put to your old configs variable.

From golang tour: https://tour.golang.org/moretypes/15

EDIT after comment:

I didn't realize that your configs was not a slice. It should be as follows:

var configs []MapUsers

There should be a [] before the type to show that it's a slice.