怎么给slice加一个Insert方法呢?而不用丑陋的两次append….
2024-10-06 11:21:11
package main import (
"fmt"
"reflect"
) func Insert(slice interface{}, pos int, value interface{}) interface{} { v := reflect.ValueOf(slice) ne := reflect.MakeSlice(reflect.SliceOf(reflect.TypeOf(value)), 1, 1) ne.Index(0).Set(reflect.ValueOf(value))
v = reflect.AppendSlice(v.Slice(0, pos), reflect.AppendSlice(ne, v.Slice(pos, v.Len()))) return v.Interface()
}
func main() {
slice := []int{1, 2} fmt.Println(Insert(slice, 1, 99)) slice2 := []string{"a", "c", "d"} slice2 = Insert(slice2, 0, "b").([]string)
fmt.Println(Insert(slice2, 4, "e"))
}
最新文章
- .NET跨平台之旅:将示例站点升级至 .NET Core 1.1 Preview 1
- web页面之响应式布局
- sublime 安装 插件
- paip.最好的脚本语言node js 环境搭建连接mysql
- poj 3077Rounders(模拟)
- git windows中文目录乱码问题解决
- mysql 常用知识
- mysql命令行导入sql文件
- python __init__.py
- c printf
- 函数调用和给对象发消息(Runtime理解)
- [转] HTML中调用JavaScript的几种情况和规范写法
- linux配置nfs服务
- 转:Web网站性能测试分析及调优实例
- openwrt下关于snmpd的一些信息
- Salesforce 应用生命周期管理
- css 长用点
- CentOS中在/etc/rc.local添加开机自启动项启动失败
- 〖Android〗OK6410a的Android HAL层代码编写笔记
- SQL SERVER 无法正常连接的那些事
热门文章
- lightoj 1057 - Collecting Gold(状压dp)
- 题目1362:左旋转字符串(Move!Move!!Move!!!)
- ssh的秘钥认证
- Cannot create PoolableConnectionFactory (null, message from server: ";Host 'admin-PC' is not allowed to connect to this MySQL server";)
- eclipse使用Gitlab
- 使用vitamio长时间播放崩溃的另类处理
- vim编辑器的使用详解
- 【学习笔记】python3核心技术与实践--开篇词
- IBM MQ reason code list
- 【教程】Bluestacks0.7.9.860以上版3分钟教你摇一摇