Код выглядит так:
func Contain(livesJSON []LiveJSON, single db.Live) bool {
for _, json := range livesJSON {
if json.Start == single.Time && json.Team == single.HomeTeamId {
return false
} else {
return true
}
}
}
У меня есть return
как в if
, так и в else
.
Есть ли смысл зацикливаться? Основываясь на вашем условном выражении, вы вернетесь к первой итерации, если войдете в цикл.
Возможный дубликат Почему я получаю недостающий возврат в конце функции в этом коде?
Нет гарантии, что тело цикла будет выполнено. Это тот случай, если вы передаете nil
или пустой слайс для livesJSON
. Таким образом вы ничего не вернете.
В этом случае вы должны вставить оператор return
после цикла:
func Contain(livesJSON []LiveJSON, single db.Live) bool {
for _, json := range livesJSON {
if json.Start == single.Time && json.Team == single.HomeTeamId {
return false
} else {
return true
}
}
return false
}
Я не эксперт по
go
, но, вообще говоря, если цикл никогда не запускается, вы ничего не возвращаете.