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

龙江网站建设公司搜索引擎竞价排名

龙江网站建设公司,搜索引擎竞价排名,wordpress sakura,网站推广wwGo 语言中的 map 是一种非常强大的数据结构,它允许我们快速地存储和检索键值对。 然而,当我们遍历 map 时,会有一个有趣的现象,那就是输出的键值对顺序是不确定的。 现象 先看一段代码示例: package mainimport &q…

Go 语言中的 map 是一种非常强大的数据结构,它允许我们快速地存储和检索键值对。

然而,当我们遍历 map 时,会有一个有趣的现象,那就是输出的键值对顺序是不确定的。

现象

先看一段代码示例:

package mainimport "fmt"func main() {m := map[string]int{"apple":  1,"banana": 2,"orange": 3,}for k, v := range m {fmt.Printf("key=%s, value=%d\n", k, v)}
}

当我们多执行几次这段代码时,就会发现,输出的顺序是不同的。

原因

首先,Go 语言 map 的底层实现是哈希表,在进行插入时,会对 key 进行 hash 运算。这也就导致了数据不是按顺序存储的,和遍历的顺序也就会不一致。
第二,map 在扩容后,会发生 key 的搬迁,原来落在同一个 bucket 中的 key,搬迁后,有些 key 可能就到其他 bucket 了。
而遍历的过程,就是按顺序遍历 bucket,同时按顺序遍历 bucket 中的 key。
搬迁后,key 的位置发生了重大的变化,有些 key 被搬走了,有些 key 则原地不动。这样,遍历 map 的结果就不可能按原来的顺序了。
最后,也是最有意思的一点。
那如果说我已经初始化好了一个 map,并且不对这个 map 做任何操作,也就是不会发生扩容,那遍历顺序是固定的吗?
答:也不是。
Go 杜绝了这种做法,主要是担心程序员会在开发过程中依赖稳定的遍历顺序,因为这是不对的。
所以在遍历 map 时,并不是固定地从 0 号 bucket 开始遍历,每次都是从一个随机值序号的 bucket 开始遍历,并且是从这个 bucket 的一个随机序号的 cell 开始遍历。

如何顺序读取

如果希望按照特定顺序遍历 map,可以先将键或值存储到切片中,然后对切片进行排序,最后再遍历切片。

改造一下上面的代码,让它按顺序输出:

package mainimport ("fmt""sort"
)func main() {m := map[string]int{"apple":  1,"banana": 2,"orange": 3,}// 将 map 中的键存储到切片中keys := make([]string, 0, len(m))for k := range m {keys = append(keys, k)}// 对切片进行排序sort.Strings(keys)// 按照排序后的顺序遍历 mapfor _, k := range keys {fmt.Printf("key=%s, value=%d\n", k, m[k])}
}
http://www.ds6.com.cn/news/67231.html

相关文章:

  • vr模式的网站建设公司seo网站推广软件排名
  • 怎么在后台设计网站企业员工培训课程内容
  • 外贸网站是公司才能进去吗搜索引擎营销方案
  • 设计师常用的素材网站seo排名赚app靠谱吗
  • 微信公众号 手机网站开发搜索引擎排名中国
  • 如何在百度上建免费网站线上推广方式都有哪些
  • 乐平网站站长工具域名查询
  • 做电影网站解析网站安全查询系统
  • wordpress网站关键词设置关键词排名监控
  • 湖州专业做网站b站推广平台
  • 网站一级页面二级页面怎么做seo外链工具源码
  • 新乡公司做网站找哪家公司好百度山西授权代理
  • 建阳建设局网站营销宣传策划方案
  • 企业b2b网站有哪些广州seo公司品牌
  • 小说网站建设教程广州今天刚刚发生的重大新闻
  • 网站内页产品 首页推荐免费入驻的卖货平台有哪些
  • 网站建设 中企动力厨具免费拓客软件
  • 蓬莱有做网站的吗南京seo
  • 网站维护中要多久才能重新进入太原网站关键词排名
  • 2023年最新疫情最新消息seo检查工具
  • 许昌网站推广公司seo软件简单易排名稳定
  • java可以做网站吗四年级说新闻2023
  • 开源建站系统有哪些北京网站建设公司
  • 网站评价及优化分析报告百度发广告需要多少钱
  • crm管理系统单机版沈阳百度seo关键词排名优化软件
  • 湛江seo微博seo排名优化
  • 网站优化具体做哪些事情seo引擎优化是什
  • 平凉哪有做网站的seo入门培训学校
  • 视频网站开发需要什么插件东莞网站建设平台
  • 前端开发做移动端的网站网络软文写作