这回我学了数组作为函数参数、切片作为函数参数、字符串处理函数、字符串转换类型、map的使用还有结构体。

数组作为函数参数



数组作为函数参数传递时值传递,实参和形参是不同的存储单元,内存中有两份独立的数组存储在不同的数据,如果想通过函数计算结果并传递给实参,需要使用数组作为函数的返回值。

切片作为函数参数


切片作为函数的参数传递时是地址传递,形参可以改变实参的值。

如果在函数中使用append进行数据添加时,形参的地址改变就不会再指向实参的地址。

字符串处理函数


字符串处理函数总共分为了8中方法,分别是contains、index主要为查找,join、split主要为分割,repeat、replace主要为重复和替换,trim、fields主要是去掉内容。

字符串类型转换

将字符串转成字符切片:

字符切片:

将bool类型,int类型,float类型转成字符串类型。

将其他类型转成字符串添加到字符切片里面:

map


map就是键值对的关系。map中的键都各不相同不能重复,但是值可以改变。
map中的key类型必须支持== != 一般建议写基本类型。
在map中只能通过key找到值得操作。
在map中如果没有提供key找到具体的值 打印value类型的默认值

map作为函数参数是地址传递,引用传递。

结构体


结构体定义在函数外部,与定义函数类型相似。
结构体时全局的可以在项目中所有文件使用,结构体是一种数据类型。

定义结构体变量就是一个复合类型。var 变量名 结构体名
结构体变量不能相互比较,但是结构体的属性可以相互比较。

结构体数组,上面这是结构体切片,一般都是用的结构体切片,切片相对于数组只多了append方法:

所以用时结构体切片比数组更加实用。

需要注意的是结构体数组作为函数参数是值传递然后结构体切片作为切片作为函数参数是地址传递(引用传递)