У меня есть эта функция, которая выбирает случайное значение из списка:
func pickAttraction(attractionType: Array<Attraction>) -> Attraction {
var randAttr = attractionType.randomElement()
if favoritesNames.contains(randAttr!.attractionName) {
return pickAttraction(attractionType: attractionType)
} else {
return randAttr!
}
}
Если случайное значение находится в массиве FavoritesName, я хочу, чтобы оно go вернулось в начало функции и выберите новое значение.
Как я могу сделать это более эффективным?
Кроме того, возможно ли, чтобы программа обработала sh при принудительном развертывании randAttr (в строке 3), если attractionType
всегда имеет хотя бы 8 значений?