看代码吧~
结构体切片:
可以直接声明时初始化,如程序中的1
可以用make,但是必须给定长度,否则不能使用下标进行赋值。
如程序中的2
程序编译没错,但是最后运行后会出现panic。。。
panic: runtime error: index out of range
补充:go遍历结构体(struct)字段对应的值,切片(slice),字典(map)
一、遍历结构体字段:
eg1:
输出结果:
steve
30
eg2:
输出结果:
Field 0: Ada
Field 1: Go
Field 2: Oberon
二、遍历切片:
for range 结构
输出结果:
slice 0 is :hello
slice 1 is :world
slice 2 is :hello
slice 3 is :everyone!
三、遍历map:
输出结果:
The corresponding relationship between key and value is:
1===>hello
2===>world
3===>go
4===>is
5===>cool
但是还有一个问题,上面的程序不做改动运行第二次,结果顺序就会改变,因为map遍历出来结果是无序的,这不好控制,也不利于业务逻辑;当业务依赖key次序时,需要引入“sort”包来解决随机化问题
代码如下:
输出结果是:
1=====>hello
2=====>world
3=====>go
4=====>is
5=====>cool
注意:
输出的结果运行多次不会改变顺序。
但是key的先后顺序是按照字母或者数字排列的。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/m0_37561165/article/details/80481979