Назад к вопросам
OZON
Senior
4
func Exclude(a, b []int) []int { set := make(map[int]struct{}) for _, v := range b { set[v] = struct{}{} } result := make([]int, 0) for _, v := range a { if _, ok := set[v]; !ok result = append(result, v) } return result } Ошибка компиляции # command-line-arguments ./main.go:39:32: syntax error: unexpected newline, expected { after if clause
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Ошибка компиляции связана с отсутствием фигурных скобок {} после условия в операторе if. В Go после условия обязательно должна идти открывающая фигурная скобка, даже если тело if занимает одну строку.
В вашем коде:
if _, ok := set[v]; !ok
result = append(result, v)
нужно добавить { и }:
if _, ok := set[v]; !ok {
result = append(result, v)
}
Исправленный вариант функции:
func Exclude(a, b []int) []int {
set := make(map[int]struct{})
for _, v := range b {
set[v] = struct{}{}
}
result := make([]int, 0)
for _, v := range a {
if _, ok := set[v]; !ok {
result = append(result, v)
}
}
return result
}