Ответ 1
Вы можете легко преобразовать любой массив ([размер] T) в срез ([] T), разрезав его:
x := [32]byte{}
slice := x[:] // shorthand for x[0:len(x)]
Оттуда вы можете сравнить его с вашим срезом, как если бы вы сравнили любые другие два среза, например
func Equal(slice1, slice2 []byte) bool {
if len(slice1) != len(slice2) {
return false
}
for i := range slice1 {
if slice1[i] != slice2[i] {
return false
}
}
return true
}
Редактировать: как упоминает Дейв в комментариях, в пакете bytes
также есть метод bytes.Equal(x[:], y[:])
, bytes.Equal(x[:], y[:])