什么是golang类型断言?golang map如何按照插入的顺序遍历?
我们来看这样的问题,golang里边的map如何按照插入的顺序进行排序?我们都知道golang里边的map是无序的,就是插入的数据可能遍历的时候不是插入顺序。怎么样实现按照插入顺序来进行遍历?
·可以借助一个切片,都知道切片是有序的,把map里边插入的同时把map里边所有的k都按顺序保存到切片里边去。
·接下来遍历的时候遍历切片里边的k,通过k再来获得map里边的值,这样就可以实现map按照插入的顺序进行遍历。
下边给大家看一下。
·首先创建一个主包还有主方。
·接下来声明一个map,这个map等于make一个map。假如这个map是粗长类型的k,后边是int类型的w。
·接下来再来声明一个切片类型的k,这个是切片类型的k,也就是当在保存这里边的同时把它的k也保存进去。
·假如这个里边要保存下边的t是a,那就先在切片里边保存一个a。
·接下来在m里边添加元素,比如等于一,接下来就循环执行下边操作了。
·比如这个是b,这个也是b,它的值是二,后边有一个c,c是值是三。
·有了这个之后接下来下边这个地方怎么做?就是下边遍历的时候遍历kiss包型换量便利。
·接下来拿到一个k,通过k获得它里边的value,m里边的k打印输出一下。
·现在就可以因为k放到map里边,放到切片里边是有序的,所以遍历k的同时拿到白列运行一下。
看结果,我现在也会看到一二三,这个没有问题。当然m这个地方还可以加一个封号v,后边这个地方再加一个k,这种情况下把号v放到kd这一部分来,再来运行一下看效果。m、a、b、c就是有序的。
文档上边跟我刚才讲了一个道理是一样的,map类型不能保证遍历的顺序,每次遍历的时候颜色顺序可能是不相同的,怎么办?可以借助一个切片辅助来。进行有序的便利。