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相关推荐

  1. ubuntu下使用vscode开发golang程序,从控制台到简单web程序

    最近项目要使用go语言开发一个web程序,由于是第一次使用go开发,就将开发过程中的点滴做个记录吧. 目录 1.安装go 1.1 安装 1.2 配置go语言环境变量 2.vscode配置go开发 2. ...

  2. 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析

    目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...

  3. 基于Golang的简单web服务程序开发——CloudGo

    基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...

  4. CentOS Docker安装配置部署Golang web helloworld

    目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker部署Golang web helloworld 四.Docker与虚拟机的区别 五. ...

  5. 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发

    基于Golang pmlpml/RxGo程序包的二次开发[阅读时间:约20分钟] 一.ReactiveX & RxGo介绍 1.ReactiveX 2.RxGo 二.系统环境&项目介绍 ...

  6. 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)

    目录[阅读时间:约5分钟] 一.概述 1.Json的作用 2.Go官方 encoding/json 包 3. golang json的主要操作 二.Json Marshal:将数据编码成json字符串 ...

  7. 基于Golang的对象序列化的程序包开发——myJsonMarshal

    基于Golang的对象序列化的程序包开发--myJsonMarshal[阅读时间:约10分钟] 一.对象序列化概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体程序设计及 ...

  8. 【golang程序包推荐分享】go-ini、viper、godoc

    [golang程序包推荐&分享]go-ini.viper.godoc 一.go-ini 1.程序包简介 2.下载安装 3.简单使用[截取自官网] 二.viper 1.程序包简介 2.下载安装 ...

  9. 基于Golang的监听读取配置文件的程序包开发——simpleConfig_v1

    基于Golang的监听&读取配置文件的程序包开发--simpleConfig_v1 [阅读时间:约10分钟] 一.配置文件概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 ...

  10. 基于Golang的CLI 命令行程序开发

    基于Golang的CLI 命令行程序开发 [阅读时间:约15分钟] 一. CLI 命令行程序概述 二. 系统环境&项目介绍&开发准备 1.系统环境 2.项目介绍 3.开发准备 三.具体 ...

最新文章

  1. iOS中nil Nil NULL 区别
  2. 数组显示php,显示图像数组 - PHP
  3. 0320-学习进度条
  4. hadoop2.20+hive+sqoop+mysql数据处理案例
  5. Struts2之初识
  6. 万物联网IoE与物联网IOT有何差别?
  7. jsp mysql事务锁_学生会事务管理系统的设计与实现(JSP,MySQL)(含录像)
  8. 在OneNote中快速插入当前日期和时间
  9. 利用计算机进行文字处理就是进行文字的录入,利用计算机进行古籍整理的方法...
  10. 学习:通用软件滤波算法-前序
  11. RGBLCD显示实验————复习到这
  12. 湘乡江南计算机学校舒俊梅,东山学校建校120周年校庆捐款捐物情况公布-湘乡东山学校.DOC...
  13. HCL_路由器_三层交换
  14. java中逗号运算符的含义_逗号运算符什么时候有用?
  15. 【海洋科学】高精度地形数据画出的水深图
  16. 计算机硬盘损坏 数据如何修复,如何修复计算机硬盘错误?如何从硬盘数据损坏中恢复数据?...
  17. 会议签到评分系统功能需求2020-5-9
  18. 2023年开工第一天
  19. 系统服务管理知识-进程守护工具:supervisor
  20. 软件及系统开发项目可行性分析

热门文章

  1. Jeff Atwood倾情推荐——程序员必读之书 (zz)
  2. linux服务器设置定时任务,Linux服务器定时任务
  3. js和vue的图片加载完成事件
  4. 数据挖掘--数据流挖掘
  5. 关于头歌C/C++编程实训数组实训朋友圈点赞的一个题解
  6. c语言编程数字后有ul,十六进制数后跟L/U/UL解析
  7. 计算机内存占用过高,内存,教您电脑内存占用高怎么办
  8. 基于scrapy的智联职位爬取
  9. tomcat consider increasing the maximum size of the cache
  10. DAS Over FC 技术允许 ATTO 分解存储并完成 vSAN 认证套件