检查一个数组是否包含一个给定的值是一个流行的编程函数,在许多编程语言中都是原生实现的。
在Go中,我们必须自己实现它,但由于新的泛型功能,我们可以编写一个单一的contains()函数,它将适用于任何类型的slice,其值可以被比较。
package main |
泛型函数的类型参数在函数名后面的方括号中声明。
在contains()中,我们使用了带有comparable约束的T类型参数。这是一个内置的约束,它描述了任何类型的值可以被比较,也就是说,我们可以对它们使用==和!=运算符。
该函数的主体其实很简单,与非通用版本没有区别。
我们在elems slice上迭代,检查当前值是否是我们要找的值v。这样,我们就得到了一个可以对任何片断类型进行操作的函数。
输出:
true |