Swift: как проверить, существует ли переменная
Я пытаюсь проверить, существует ли переменная (или, вернее, определенный индекс массива) в Swift.
Если я использую
if let mydata = array[1] {
Я получаю сообщение об ошибке, если индекс имеет значение, и сбой, если его нет.
Если я использую
if array[1] != nil {
Я получаю предупреждения компилятора и / или сбои.
По сути, я просто пытаюсь получить аргументы командной строки (которые являются любым именем файла) и проверить, были ли они включены или нет. Все примеры аргументов командной строки, которые я видел, используют операторы switch / case, но для проверки известного текста, а не для изменения имен файлов.
Я все еще получаю Индекс из ошибок диапазона в XCode со следующим:
if arguments.count > 1 {
var input = arguments[2]
} else {
}
4 ответа
if index < myData.count {
// safe to access
let x = myData[index]
}
Попробуй это:
extension Collection where Indices.Iterator.Element == Index {
subscript (safe index: Index) -> Generator.Element? {
return indices.contains(index) ? self[index] : nil
}
}
затем:
if let value = array[safe: 1] {
print(value)
}
теперь вы можете даже сделать:
textField.text = stringArray[safe: anyIndex]
это не приведет к сбою, потому что textField.text может иметь значение nil, а нижний индекс [safe:] всегда возвращает значение, если существует, или nil, если не существует.
Просто, чтобы проверить индекс:
if index < array.count {
// index is exist
let data = array[index]
}
Ты можешь использовать contains
метод, чтобы проверить, существует ли значение в массиве или нет.
Например:
let expenses = [21.37, 55.21, 9.32, 10.18, 388.77, 11.41]
let hasBigPurchase = expenses.contains { $0 > 100 } // hasBigPurchase is a boolean saying whether the array contains the value or not.
Проверьте его документацию для получения дополнительной информации.