【Golang】判断数组中是否包含指定元素

本文将介绍如何在Go语言中实现这一功能,并提供一个通用的函数IsContain,用于检查切片中是否包含指定的元素。

实现

下面是一个IsContain函数的实现,它可以检查intstring类型的切片是否包含特定的元素:

go 复制代码
package main
import "fmt"
func IsContain(items interface{}, item interface{}) bool {
	switch items.(type) {
	case []int:
		intArr := items.([]int)
		for _, value := range intArr {
			if value == item.(int) {
				return true
			}
		}
	case []string:
		strArr := items.([]string)
		for _, value := range strArr {
			if value == item.(string) {
				return true
			}
		}
	default:
		return false
	}
	return false
}
func main() {
	intArr := []int{1, 2, 3, 4, 5}
	strArr := []string{"apple", "banana", "cherry"}
	fmt.Println(IsContain(intArr, 3)) // 输出: true
	fmt.Println(IsContain(strArr, "banana")) // 输出: true
	fmt.Println(IsContain(intArr, 6)) // 输出: false
	fmt.Println(IsContain(strArr, "orange")) // 输出: false
}

这个函数通过类型断言来检查items参数的实际类型,并根据类型执行相应的循环和比较操作。如果传入的类型不是intstring切片,函数将返回false

结论

本文提供了一个Go语言的函数IsContain,用于检查一个切片是否包含特定的元素,适用于intstring类型的切片。

这个函数可以扩展功能,以支持更多的数据类型。

相关推荐
念何架构之路11 分钟前
图解defer
开发语言·后端·golang
我喜欢山,也喜欢海2 小时前
Java和go在并发上的表现为什么不一样
java·python·golang
geovindu3 小时前
go: Flyweight Pattern
开发语言·设计模式·golang·享元模式
不会写DN12 小时前
Golang中的map的key可以是哪些类型?可以嵌套map吗?
后端·golang·go
止语Lab16 小时前
Go vs Java GC:同一场延迟战争的两条路
java·开发语言·golang
MmeD UCIZ19 小时前
GO 快速升级Go版本
开发语言·redis·golang
mOok ONSC20 小时前
对基因列表中批量的基因进行GO和KEGG注释
开发语言·数据库·golang
Achou.Wang21 小时前
go语言中类型别名和定义类型之间的区别
服务器·golang
geovindu1 天前
go: Composite Pattern
设计模式·golang·组合模式
XMYX-01 天前
18 - Go 等待协程:WaitGroup 使用与坑
开发语言·golang