golang unshift
package libimport "reflect"// data := []string{"A", "B", "C", "D"}
// data = append([]string{"Prepend Item"}, data...)// 实现类似javascript中array的unshift功能
func Unshift(slice, v interface{}) interface{} {var typ = reflect.TypeOf(slice)if typ.Kind() == reflect.Slice {var vv = reflect.ValueOf(slice)var tmp = reflect.MakeSlice(typ, vv.Len()+1, vv.Cap()+1)tmp.Index(0).Set(reflect.ValueOf(v))var dst = tmp.Slice(1, tmp.Len())reflect.Copy(dst, vv)return tmp.Interface()}panic("not a slice")
}
package libimport ("reflect""testing"
)func TestUnshift(t *testing.T) {var a = []int{1, 2, 3}a = Unshift(a, 22).([]int)if !reflect.DeepEqual(a, []int{22, 1, 2, 3}) {t.Error("a:", a)}var b = []string{"a", "b"}b = Unshift(b, "haha").([]string)if !reflect.DeepEqual(b, []string{"haha", "a", "b"}) {t.Error("b:", b)}
}
golang unshift相关推荐
- ubuntu下使用vscode开发golang程序,从控制台到简单web程序
最近项目要使用go语言开发一个web程序,由于是第一次使用go开发,就将开发过程中的点滴做个记录吧. 目录 1.安装go 1.1 安装 1.2 配置go语言环境变量 2.vscode配置go开发 2. ...
- 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析
目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...
- 基于Golang的简单web服务程序开发——CloudGo
基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...
- CentOS Docker安装配置部署Golang web helloworld
目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker部署Golang web helloworld 四.Docker与虚拟机的区别 五. ...
- 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发
基于Golang pmlpml/RxGo程序包的二次开发[阅读时间:约20分钟] 一.ReactiveX & RxGo介绍 1.ReactiveX 2.RxGo 二.系统环境&项目介绍 ...
- 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)
目录[阅读时间:约5分钟] 一.概述 1.Json的作用 2.Go官方 encoding/json 包 3. golang json的主要操作 二.Json Marshal:将数据编码成json字符串 ...
- 基于Golang的对象序列化的程序包开发——myJsonMarshal
基于Golang的对象序列化的程序包开发--myJsonMarshal[阅读时间:约10分钟] 一.对象序列化概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体程序设计及 ...
- 【golang程序包推荐分享】go-ini、viper、godoc
[golang程序包推荐&分享]go-ini.viper.godoc 一.go-ini 1.程序包简介 2.下载安装 3.简单使用[截取自官网] 二.viper 1.程序包简介 2.下载安装 ...
- 基于Golang的监听读取配置文件的程序包开发——simpleConfig_v1
基于Golang的监听&读取配置文件的程序包开发--simpleConfig_v1 [阅读时间:约10分钟] 一.配置文件概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 ...
- 基于Golang的CLI 命令行程序开发
基于Golang的CLI 命令行程序开发 [阅读时间:约15分钟] 一. CLI 命令行程序概述 二. 系统环境&项目介绍&开发准备 1.系统环境 2.项目介绍 3.开发准备 三.具体 ...
最新文章
- iOS中nil Nil NULL 区别
- 数组显示php,显示图像数组 - PHP
- 0320-学习进度条
- hadoop2.20+hive+sqoop+mysql数据处理案例
- Struts2之初识
- 万物联网IoE与物联网IOT有何差别?
- jsp mysql事务锁_学生会事务管理系统的设计与实现(JSP,MySQL)(含录像)
- 在OneNote中快速插入当前日期和时间
- 利用计算机进行文字处理就是进行文字的录入,利用计算机进行古籍整理的方法...
- 学习:通用软件滤波算法-前序
- RGBLCD显示实验————复习到这
- 湘乡江南计算机学校舒俊梅,东山学校建校120周年校庆捐款捐物情况公布-湘乡东山学校.DOC...
- HCL_路由器_三层交换
- java中逗号运算符的含义_逗号运算符什么时候有用?
- 【海洋科学】高精度地形数据画出的水深图
- 计算机硬盘损坏 数据如何修复,如何修复计算机硬盘错误?如何从硬盘数据损坏中恢复数据?...
- 会议签到评分系统功能需求2020-5-9
- 2023年开工第一天
- 系统服务管理知识-进程守护工具:supervisor
- 软件及系统开发项目可行性分析
热门文章
- Jeff Atwood倾情推荐——程序员必读之书 (zz)
- linux服务器设置定时任务,Linux服务器定时任务
- js和vue的图片加载完成事件
- 数据挖掘--数据流挖掘
- 关于头歌C/C++编程实训数组实训朋友圈点赞的一个题解
- c语言编程数字后有ul,十六进制数后跟L/U/UL解析
- 计算机内存占用过高,内存,教您电脑内存占用高怎么办
- 基于scrapy的智联职位爬取
- tomcat consider increasing the maximum size of the cache
- DAS Over FC 技术允许 ATTO 分解存储并完成 vSAN 认证套件