Я действительно запутался в способах создания массива в Swift. Не могли бы вы сказать, сколько способов создать пустой массив с некоторыми подробностями?
Я действительно запутался в способах создания массива в Swift. Не могли бы вы сказать, сколько способов создать пустой массив с некоторыми подробностями?
Ответы:
Ну вот:
var yourArray = [String]()
Вышесказанное также работает для других типов, а не только для строк. Это просто пример.
Добавление ценностей к нему
Я полагаю, что вы в конечном итоге захотите добавить ценность к этому!
yourArray.append("String Value")
Или
let someString = "You can also pass a string variable, like this!"
yourArray.append(someString)
Добавить, вставив
Если у вас есть несколько значений, вы можете вставить новые значения вместо добавления. Например, если вы хотите вставить новые объекты в начало массива (вместо добавления их в конец):
yourArray.insert("Hey, I'm first!", atIndex: 0)
Или вы можете использовать переменные, чтобы сделать вашу вставку более гибкой:
let lineCutter = "I'm going to be first soon."
let positionToInsertAt = 0
yourArray.insert(lineCutter, atIndex: positionToInsertAt)
Вы можете в конечном итоге захотеть удалить некоторые вещи
var yourOtherArray = ["MonkeysRule", "RemoveMe", "SwiftRules"]
yourOtherArray.remove(at: 1)
Вышеописанное прекрасно работает, когда вы знаете, где в массиве находится значение (то есть, когда вы знаете его значение индекса). Поскольку значения индекса начинаются с 0, вторая запись будет с индексом 1.
Удаление значений без знания индекса
Но что, если вы этого не сделаете? Что если yourOtherArray имеет сотни значений, и все, что вы знаете, это то, что вы хотите удалить значение, равное «RemoveMe»?
if let indexValue = yourOtherArray.index(of: "RemoveMe") {
yourOtherArray.remove(at: indexValue)
}
Это должно начать вас!
Swift 3
Существует три (3) способа создания пустого массива в Swift, и сокращенный синтаксис всегда предпочтителен.
Метод 1: Сокращенный синтаксис
var arr = [Int]()
Способ 2: инициализатор массива
var arr = Array<Int>()
Метод 3: Массив с литералом Array
var arr:[Int] = []
Способ 4: Кредит переходит к @BallpointBen
var arr:Array<Int> = []
var arr: Array<Int> = []. [T]только обсчитывать дляArray<T>
Существует два основных способа создания / инициализации массива в Swift.
var myArray = [Double]()
Это создаст массив двойников.
var myDoubles = [Double](count: 5, repeatedValue: 2.0)
Это создаст массив из 5 двойных, все инициализируются со значением 2,0.
var myDoubles = [Double](repeating: 2.0, count: 5)- обратите внимание на изменение порядка параметров и метку repeatedValueвrepeating
Если вы хотите объявить пустой массив строкового типа, вы можете сделать это 5 разными способами: -
var myArray: Array<String> = Array()
var myArray = [String]()
var myArray: [String] = []
var myArray = Array<String>()
var myArray:Array<String> = []
Массив любого типа: -
var myArray: Array<AnyObject> = Array()
var myArray = [AnyObject]()
var myArray: [AnyObject] = []
var myArray = Array<AnyObject>()
var myArray:Array<AnyObject> = []
Массив типа Integer: -
var myArray: Array<Int> = Array()
var myArray = [Int]()
var myArray: [Int] = []
var myArray = Array<Int>()
var myArray:Array<Int> = []
Вот некоторые общие задачи в Swift 4, которые вы можете использовать в качестве справки, пока не привыкнете к вещам.
let emptyArray = [String]()
let emptyDouble: [Double] = []
let preLoadArray = Array(repeating: 0, count: 10) // initializes array with 10 default values of the number 0
let arrayMix = [1, "two", 3] as [Any]
var arrayNum = [1, 2, 3]
var array = ["1", "two", "3"]
array[1] = "2"
array.append("4")
array += ["5", "6"]
array.insert("0", at: 0)
array[0] = "Zero"
array.insert(contentsOf: ["-3", "-2", "-1"], at: 0)
array.remove(at: 0)
array.removeLast()
array = ["Replaces all indexes with this"]
array.removeAll()
for item in arrayMix {
print(item)
}
for (index, element) in array.enumerated() {
print(index)
print(element)
}
for (index, _) in arrayNum.enumerated().reversed() {
arrayNum.remove(at: index)
}
let words = "these words will be objects in an array".components(separatedBy: " ")
print(words[1])
var names = ["Jemima", "Peter", "David", "Kelly", "Isabella", "Adam"]
names.sort() // sorts names in alphabetical order
let nums = [1, 1234, 12, 123, 0, 999]
print(nums.sorted()) // sorts numbers from lowest to highest
Массив в swift записывается как ** Array <Element> **, где Element - это тип значений, которые массив может хранить.
Массив может быть инициализирован как:
let emptyArray = [String]()
Это показывает, что это массив типа строки
Тип переменной emptyArray выводится как [String] из типа инициализатора.
Для создания массива типа строка с элементами
var groceryList: [String] = ["Eggs", "Milk"]
groceryList был инициализирован двумя элементами
Переменная groceryList объявлена как «массив строковых значений» , записанный как [String]. В этом конкретном массиве указан тип значения String, разрешено хранить только значения String.
Существуют различные свойства массива, такие как:
- Проверить, есть ли в массиве элементы (если массив пуст или нет)
Свойство isEmpty (Boolean) для проверки, равно ли свойство count 0:
if groceryList.isEmpty {
print("The groceryList list is empty.")
} else {
print("The groceryList is not empty.")
}
- Добавление (добавление) элементов в массив
Вы можете добавить новый элемент в конец массива, вызвав метод массива append (_ :):
groceryList.append("Flour")
groceryList теперь содержит 3 предмета.
Или добавьте массив из одного или нескольких совместимых элементов с помощью оператора присваивания (+ =):
groceryList += ["Baking Powder"]
groceryList теперь содержит 4 предмета
groceryList += ["Chocolate Spread", "Cheese", "Peanut Butter"]
groceryList теперь содержит 7 предметов
Согласно Swift 5
// An array of 'Int' elements
let oddNumbers = [1, 3, 5, 7, 9, 11, 13, 15]
// An array of 'String' elements
let streets = ["Albemarle", "Brandywine", "Chesapeake"]
// Shortened forms are preferred
var emptyDoubles: [Double] = []
// The full type name is also allowed
var emptyFloats: Array<Float> = Array()
Вы можете удалить содержимое массива с передачей индекса массива или вы можете удалить все
var array = [String]()
print(array)
array.append("MY NAME")
print(array)
array.removeFirst()
print(array)
array.append("MY NAME")
array.removeLast()
array.append("MY NAME1")
array.append("MY NAME2")
print(array)
array.removeAll()
print(array)
Swift 5
// Create an empty array
var emptyArray = [String]()
// Add values to array by appending (Adds values as the last element)
emptyArray.append("Apple")
emptyArray.append("Oppo")
// Add values to array by inserting (Adds to a specified position of the list)
emptyArray.insert("Samsung", at: 0)
// Remove elements from an array by index number
emptyArray.remove(at: 2)
// Remove elements by specifying the element
if let removeElement = emptyArray.firstIndex(of: "Samsung") {
emptyArray.remove(at: removeElement)
}
Аналогичный ответ дается, но он не работает для последней версии Swift (Swift 5), поэтому вот обновленный ответ. Надеюсь, поможет! :)
Инициирование массива с предопределенным количеством:
Array(repeating: 0, count: 10)
Я часто использую это для отображения операторов, где мне нужно указанное количество фиктивных объектов. Например,
let myObjects: [MyObject] = Array(repeating: 0, count: 10).map { _ in return MyObject() }
Совместим с: Xcode 6.0.1+
Вы можете создать пустой массив, указав тип Element вашего массива в объявлении.
Например:
// Shortened forms are preferred
var emptyDoubles: [Double] = []
// The full type name is also allowed
var emptyFloats: Array<Float> = Array()
Пример со страницы разработчика Apple (Array):
Надеюсь, это поможет любому, кто наткнется на эту страницу.