登录
首页 >  Golang >  Go问答

函数接收器调用未初始化的type类型,make初始化问题???

来源:SegmentFault

时间:2023-01-07 15:03:36 382浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《函数接收器调用未初始化的type类型,make初始化问题???》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我是新学者,下列代码会报错,原因是UserMap没有初始化,但是按照我下面的方法um = make(map[int]People)初始化,um在IDE里会出现灰色下划线警告,怎样做才能正确的初始化并使用,请指教,谢谢了

type People struct {
    Name string
    Sex  byte
}

type UserMap map[int]People

func (um UserMap) Get(id int) UserMap {
    //um = make(UserMap)
    um[id] = People{Name: "张三", Sex: 1}
    return um
}

func (um UserMap) Say(id int) UserMap {
    //um = make(map[int]People)
    delete(um, id)
    return um
}

func main() {
    var s UserMap
    val := s.Get(1)
    fmt.Println(val)
    val = s.Say(1)
    fmt.Println(val)
}

正确答案

func main() {
    var s UserMap = make(UserMap)
    val := s.Get(1)
    fmt.Println(val)
    val = s.Say(1)
    fmt.Println(val)
}

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

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