dongwen1871 2019-05-01 10:42
浏览 19

尝试附加相同类型的结构时,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?

  • 写回答

1条回答 默认 最新

  • dongliao4353 2019-05-01 10:50
    关注

    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.

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题