最近写代码意识到用append来动态增减数组大小有点过于繁琐,之前用java,c#或js都不会有这种心累的感觉,所以研究了一下如何来简化这种本不该如此复杂的常用工具。

为了研究出这个方法我也特地把原本的1.17版本升级到1.18版希望泛型能有所帮助,但是花1小时发现这些新特性在这个场景并没有什么作用,最后不得不还是需要用到接口和多态来实现。

首先我们先定义下测试需要用到的接口和结构体,这里分别有TestObject,TestPerson,TestStudent这三种对象,Student继承Person,ITestObject做为传递用的基本类型。

golang初始化结构体中的数组:简化golang数组切片操作(1)

下面定义用于简化切片的方法,基本上这三个就是最常用的,足够满足日常绝大多数需求。

golang初始化结构体中的数组:简化golang数组切片操作(2)

进行添加测试

golang初始化结构体中的数组:简化golang数组切片操作(3)

输出结果

golang初始化结构体中的数组:简化golang数组切片操作(4)

进行插入测试,这是插入到B所在位置

golang初始化结构体中的数组:简化golang数组切片操作(5)

输出结果

golang初始化结构体中的数组:简化golang数组切片操作(6)

进行删除测试

golang初始化结构体中的数组:简化golang数组切片操作(7)

输出结果

golang初始化结构体中的数组:简化golang数组切片操作(8)

我们再用派生出来的student结构体做下测试

golang初始化结构体中的数组:简化golang数组切片操作(9)

golang初始化结构体中的数组:简化golang数组切片操作(10)

所以go虽然简单,但如果想把复杂的事情变简单给自己节省开发时间还是离不开oop思想。

如果想看到更多有价值的开发经验,记得关注哦!

,