前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >slice uitl 笔记

slice uitl 笔记

作者头像
solate
发布2019-07-22 17:25:40
5090
发布2019-07-22 17:25:40
举报
文章被收录于专栏:solate 杂货铺solate 杂货铺

这个主要是处理slice,数组等,欢迎补充和点赞。

判断元素在slice中的另一种方法

代码语言:javascript
复制
func main() {

	var keys  = []string{"key", "test"}

	var isIn bool
	strTmp := strings.Join(keys, "|")
	fmt.Println(strTmp)
	if strings.Contains(strTmp, "key") {
		isIn = true
	}
	fmt.Println(isIn)
}

任意元素判断是否存在slice中

推荐使用基础类型,也就是使用下面的变种类型

代码语言:javascript
复制
/**
元素是否在slice中
如果在exists返回true, index返回第几个元素
 */
func InArray(val interface{}, array interface{}) (exists bool, index int) {
	exists = false
	index = -1

	switch reflect.TypeOf(array).Kind() {
	case reflect.Slice:
		s := reflect.ValueOf(array)

		for i := 0; i < s.Len(); i++ {
			if reflect.DeepEqual(val, s.Index(i).Interface()) == true {
				index = i
				exists = true
				return
			}
		}
	}
	return
}
string 类型
代码语言:javascript
复制
/**
字符串是否在slice中
如果在exists返回true, index返回第几个元素
 */
func InArrayString(val string, array []string) (exists bool, index int) {
	exists = false
	index = -1;

	for i, v := range array {
		if val == v {
			index = i
			exists = true
			return
		}
	}

	return
}
int 类型
代码语言:javascript
复制
/**
字符串是否在slice中
如果在exists返回true, index返回第几个元素
 */
func InArrayInt(val int, array []int) (exists bool, index int) {
	exists = false
	index = -1;

	for i, v := range array {
		if val == v {
			index = i
			exists = true
			return
		}
	}

	return
}

删除指定元素

代码语言:javascript
复制
//删除指定items,并且可以删除重复id
func SliceRemove(slice []string, value string) (result []string)  {
	index := 0
	endIndex := len(slice) -1

	for k, v := range slice {
		if v == value {
			result = append(result, slice[index:k]...)
			index = k + 1
		}
		if k == endIndex {
			result = append(result, slice[index:]...)
		}
	}
	fmt.Println("result:===",result)
	return
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 判断元素在slice中的另一种方法
  • 任意元素判断是否存在slice中
    • string 类型
      • int 类型
      • 删除指定元素
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档