Go 检查切片中的所有项目是否相等

Go 检查切片中的所有项目是否相等,go,slice,equality,Go,Slice,Equality,我需要创建一个函数,该函数: returns true if all elements in a slice are equal (they will all be the same type) returns false if any elements in a slice are different 我能想到的唯一方法是反转切片,然后比较切片和反转切片 有没有更好的方法可以做到这一点,即良好的语法和更高效的方法?我不确定您的反转切片的过程是什么,但这是不必要的。最简单的算法是检查第一个之后

我需要创建一个函数,该函数:

returns true if all elements in a slice are equal (they will all be the same type)
returns false if any elements in a slice are different
我能想到的唯一方法是反转切片,然后比较切片和反转切片


有没有更好的方法可以做到这一点,即良好的语法和更高效的方法?

我不确定您的反转切片的过程是什么,但这是不必要的。最简单的算法是检查第一个之后的所有元素是否等于第一个:

func allSameStrings(a []string) bool {
    for i := 1; i < len(a); i++ {
        if a[i] != a[0] {
            return false
        }
    }
    return true
}
func allSameStrings(一个[]字符串)bool{
对于i:=1;i
这是我能想到的最简单的方法。我喜欢它对空切片的处理方式。我建议的一个改进是允许它适用于任何类型,而不仅仅是字符串。反转将为回文片段提供误报。