Чтобы избавиться от проблемы «уникальных» имен, вы можете:
1- Получить преимущество от использования Sets , преобразовав listOfName
в установите и проверьте счетчик:
if Set(listOfName).count == listOfName.count {
// unique names, we are good to go
} else {
// similar names...
}
ИЛИ
2- , если вы хотите последовательно проверять массив после добавления каждогоэлемент, вы можете использовать contains
.В качестве примера базового использования для него:
var names = [String]()
var inputName = "Jack"
// will append "Jack"
if names.contains(inputName) {
// name is already exist
} else {
names.append(inputName)
}
inputName = "Smith"
// will append "Smith"
if names.contains(inputName) {
// name is already exist
} else {
names.append(inputName)
}
inputName = "Smith"
// will NOT append "Jack"
if names.contains(inputName) {
// name is already exist
} else {
names.append(inputName)
}
Совет:
Если функция makeTheTeam
должна получить неопределенное количество строк, япредложил бы объявить его как variadic :
func makeTheTeam(listOfName: String...) { // ...