golang实现通过索引删除任意类型的slice元素
来源:互联网 发布:佐藤谦一 知乎 编辑:程序博客网 时间:2024/06/05 10:19
最近在写练手项目的时候,需求一个功能: 实现通过数组或者切片的索引删除 任意类型数组或者切片的内容,并且返回删除后的结果集,找了半天发现 官方package中没有Java.util.Arrays 这样的工具类的实现,只好自己写一个 ,由于golang中没有c++ 、java中泛型的概念,所以只能将工具方法通过 反射类实现一下,具体代码如下:
package toolsimport ("errors""reflect")//删除切片func DeleteSlice(slice interface{}, index int) (interface{}, error) {sliceValue := reflect.ValueOf(slice)length := sliceValue.Len()if slice == nil || length == 0 || (length-1) < index {return nil, errors.New("error")}if length-1 == index {return sliceValue.Slice(0, index).Interface(), nil} else if (length - 1) >= index {return reflect.AppendSlice(sliceValue.Slice(0, index), sliceValue.Slice(index+1, length)).Interface(), nil}return nil, errors.New("error")}
练手项目ActivedRouter https://github.com/UsherYue/ActivedRouter ,求start
1 0
- golang实现通过索引删除任意类型的slice元素
- goLang slice 类型的简单应用
- golang -- slice元素去重
- Golang去除slice和list的重复元素
- Windows API c实现查找、删除任意类型的文件_VERSION终结版(vc6.0调试通过)
- Windows API 实现查找、删除任意类型的文件_VERSION20120605(vc6.0调试通过)(2012.6.5最新修改)
- Windows API 实现查找、删除任意类型的文件_VERSION20120612(vc6.0调试通过)(2012.6.12最新修改)
- 分析golang的slice排序
- 数组元素的删除、首元素和尾元素的删除、任意位置元素的删除
- Golang 如何在切片尾部追加元素,又如何删除切片指定索引的元素,以及如何在切片中间插入元素,还有切片之间的复制
- 【玩转Golang】slice切片的操作——切片的追加、删除、插入等
- Golang-slice
- golang slice
- H.264的Slice及Slice类型
- H.264的Slice及Slice类型
- H.264的Slice及Slice类型
- H.264的Slice及Slice类型
- H.264的Slice及Slice类型
- 快速找质数
- [BZOJ3209]花神的数论题(数位dp)
- centos部署xampp
- Watson Explorer 入门(10):导出 UIMA 管道至域适配搜索
- C/C++学习(5)友元类分析
- golang实现通过索引删除任意类型的slice元素
- 帧、报文、报文段、分组、包、数据报的概念区别
- PHP——日期和时间
- EMoji表情 Java+Mysql 存储
- 关于闭包
- Spark机器学习之协同过滤算法
- RPC过程简单实现
- apache带宽配置
- 5.5