page contents

如何判断 2 个字符串切片(slice) 是相等的?

轩辕小不懂 发布于 2021-09-11 14:20
阅读 1302
收藏 0
分类:Golang
1919
Nen
Nen
- 程序员

go 语言中可以使用反射 reflect.DeepEqual(a, b) 判断 a、b 两个切片是否相等,但是通常不推荐这么做,使用反射非常影响性能。

通常采用的方式如下,遍历比较切片中的每一个元素(注意处理越界的情况)。

func StringSliceEqualBCE(a, b []string) bool {
if len(a) != len(b) {
return false
}

if (a == nil) != (b == nil) {
return false
}

b = b[:len(a)]
for i, v := range a {
if v != b[i] {
return false
}
}

return true
}
请先 登录 后评论