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

Check if all items in a slice are equal

我需要创建一个函数:

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
}