登录
首页 >  Golang >  Go问答

将值附加到地图 golang 内的数组

来源:Golang技术栈

时间:2023-04-11 16:57:16 172浏览 收藏

大家好,我们又见面了啊~本文《将值附加到地图 golang 内的数组》的内容中将会涉及到golang等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

我正在尝试将值附加到地图内的数组中:

var MyMap map[string]Example 

type Example struct {
    Id []int
    Name []string
}

这是我尝试过的,但我无法指向 Example 的对象以附加到数组。

package main


import (
  "fmt"
)


type Example struct {
  Id []int
  Name []string
}

func (data *Example) AppendExample(id int,name string) {
   data.Id = append(data.Id, id)
   data.Name = append(data.Name, name)
}

var MyMap map[string]Example

func main() {
   MyMap = make(map[string]Example)
   MyMap["key1"] = Oferty.AppendExample(1,"SomeText")
   fmt.Println(MyMap)
}

正确答案

您需要先创建 Example 结构的实例,然后再将其放入地图。

此外,您的地图保留了您的结构的副本,而不是根据 MyMap 定义的结构本身。尝试将您的 Example 结构的引用保留在地图中。

package main

import "fmt"

type Example struct {
    Id []int
    Name []string
}

func (data *Example) AppendOffer(id int, name string) {
    data.Id = append(data.Id, id)
    data.Name = append(data.Name, name)
}

var MyMap map[string]*Example

func main() {
    obj := &Example{[]int{}, []string{}}
    obj.AppendOffer(1, "SomeText")
    MyMap = make(map[string]*Example)
    MyMap["key1"] = obj
    fmt.Println(MyMap)
}

波兹卓亚姆!

今天关于《将值附加到地图 golang 内的数组》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表