当前位置: 首页 > news >正文

虚拟机做局域网网站服务器企业邮箱登录界面

虚拟机做局域网网站服务器,企业邮箱登录界面,知名餐饮设计公司,做网站用什么比较好背景 关于slice和map是指传递还是引用传递,很多文章都分析得模棱两可,其实在Go中只有值传递,但是很多情况下是因为分不清slice和map的底层实现,所以导致很多人在这一块产生疑惑,下面通过代码案例分析slice和map到底是…

背景

关于slice和map是指传递还是引用传递,很多文章都分析得模棱两可,其实在Go中只有值传递,但是很多情况下是因为分不清slice和map的底层实现,所以导致很多人在这一块产生疑惑,下面通过代码案例分析slice和map到底是值传递还是引用传递。

案例分析

func main() {list := make([]int, 10)fmt.Printf("list addr:%p\n", list)fmt.Println("list size:", len(list))listExpand(list)fmt.Println("expand list size:", len(list))m := make(map[int]int, 0)fmt.Printf("map addr:%p\n", m)fmt.Println("map size:", len(m))mapExpand(m)fmt.Println("expand size:", len(m))
}func mapExpand(m map[int]int) {for i := range 10 {m[i] = i}fmt.Printf("expand map addr:%p\n", m)
}func listExpand(list []int) {for i := range 10 {list = append(list, i)}fmt.Printf("expand list addr:%p\n", list)
}

上面代码的输出结果:

list addr:0xc000010500
list size: 10
expand list addr:0xc0000220a0
expand list size: 10
map addr:0xc00001e180
map size: 0
expand map addr:0xc00001e180
expand size: 10

可以清楚的看到,都没有使用指针的情况下,两者的结果都不一样,map在扩容前后都是同一个内存地址,但是slice在没扩容都不为同一个内存地址。
可能会更疑惑了,这结果是想说明,map是引用传递,slice是值传递吗?

在Go的1.8版本源码中
hashmap的make实现如下:
在这里插入图片描述
可以清楚的看到,通过make创建的map其实返回的是hamp结构体的指针。
slice的make实现如下:
在这里插入图片描述
可以清楚的看到,通过make创建的slice其实返回的是slice的结构体,并不是指针。

所以,结论很清晰了,其实Go中只有值传递,因为各个引用类型底层实现的不同导致的结果不一致,因为创建map返回的是指针,所以传递map时,扩容了也不会导致和预期不一样的结果;而slice的创建返回的是结构体,如果扩容了,则会导致底层数组的变化,不一定是预期的结果。

http://www.yayakq.cn/news/693900/

相关文章:

  • 精美网站欣赏爱站网关键词挖掘查询
  • 无代码网站南昌网站开发公司
  • 三亚婚纱摄影 织梦网站源码辛集市住房和城乡建设局网站
  • 网站评论管理怎么做的网站质量需求
  • 建网站做点什么好微信公众号怎么开店
  • 站长之家工具查询企业网站的一般要素包括哪些
  • wordpress 去掉emoji惠州短视频seo
  • 手绘风格 网站番禺网站(建设信科网络)
  • 如何看网站点击量怎么做网站后台界面
  • 现在手机网站设计做网站需要学会些什么
  • 电脑公司网站源码乐山做网站的公司
  • 网站优化报表wamp wordpress打不开
  • 给别人做网站的销售叫什么成都 网站建设 公司
  • 中国国家城乡建设部网站杭州建设网站建站
  • 网站规划和建设进度广州外贸公司有哪些
  • 申请网站建设经费的请示智能手机网站建设
  • 怎样给自己的店做网站合肥个人建站模板
  • 株洲第三方网站建设哪家好360官方下载官网
  • 电白区建设局网站wordpress 4.9.1模板
  • 做英文的小说网站php做二手商城网站源码
  • php下载站源码可以做免费广告的网站有哪些
  • 怎么建网站详细步骤html5商城网站开发
  • 响应式网站建设有哪些好处霸气的网络公司名字
  • 网站平台是怎么做财务的青岛seo排名公司
  • 网站建设逻辑组织的几种模型wordpress用户投稿插件
  • 制作网站建设规划书湖南长沙网页制作公司
  • 网站内容怎么写呼市建设官方网站
  • 广州公司营销型网站建设网站内容建设机制
  • 网投网站制作网站建设免费域名
  • 免费企业网站制作域名解析后多久打开网站