Я действительно запутался в способах создания массива в Swift. Не могли бы вы сказать, сколько способов создать пустой массив с некоторыми подробностями?
Так что мне делать, если я хочу сохранить какой-либо объект в моем массиве?
Инуяша
var myArray: [AnyObject] = []
Лео Дабус
Ответы:
297
Ну вот:
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»?
Не уверен, почему этот ответ имеет наибольшее количество голосов. Он отвечает на множество вопросов, которые ОП никогда не задавал, но предоставляет только один способ создания пустого массива, когда задается вопрос: «Скажите, пожалуйста, сколько способов создать пустой массив».
Спасибо, могу ли я объявить вот так `var myArray = [AnyObject] ()`?
Инуяша
Да, это создаст массив «AnyObject», который позволит вам поместить туда практически все. Если вам не нужен массив, подобный этому, было бы лучше присвоить ему определенное значение, например 'var myArray = [String] ()'.
Аарон
Примечание. Swift 4 изменил синтаксис для инициализации массива с повторяющимися значениями следующим образом: var myDoubles = [Double](repeating: 2.0, count: 5)- обратите внимание на изменение порядка параметров и метку repeatedValueвrepeating
HirdayGupta
8
Если вы хотите объявить пустой массив строкового типа, вы можете сделать это 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 предмета.
Или добавьте массив из одного или нескольких совместимых элементов с помощью оператора присваивания (+ =):
// 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()
// 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
iflet removeElement = emptyArray.firstIndex(of:"Samsung"){
emptyArray.remove(at: removeElement)}
Аналогичный ответ дается, но он не работает для последней версии Swift (Swift 5), поэтому вот обновленный ответ. Надеюсь, поможет! :)
Ответы:
Ну вот:
Вышесказанное также работает для других типов, а не только для строк. Это просто пример.
Добавление ценностей к нему
Я полагаю, что вы в конечном итоге захотите добавить ценность к этому!
Или
Добавить, вставив
Если у вас есть несколько значений, вы можете вставить новые значения вместо добавления. Например, если вы хотите вставить новые объекты в начало массива (вместо добавления их в конец):
Или вы можете использовать переменные, чтобы сделать вашу вставку более гибкой:
Вы можете в конечном итоге захотеть удалить некоторые вещи
Вышеописанное прекрасно работает, когда вы знаете, где в массиве находится значение (то есть, когда вы знаете его значение индекса). Поскольку значения индекса начинаются с 0, вторая запись будет с индексом 1.
Удаление значений без знания индекса
Но что, если вы этого не сделаете? Что если yourOtherArray имеет сотни значений, и все, что вы знаете, это то, что вы хотите удалить значение, равное «RemoveMe»?
Это должно начать вас!
источник
может хранить любой объект
может хранить только строку
источник
Вы могли бы использовать
источник
Swift 3
Существует три (3) способа создания пустого массива в Swift, и сокращенный синтаксис всегда предпочтителен.
Метод 1: Сокращенный синтаксис
Способ 2: инициализатор массива
Метод 3: Массив с литералом Array
Способ 4: Кредит переходит к @BallpointBen
источник
var arr: Array<Int> = []
.[T]
только обсчитывать дляArray<T>
Существует два основных способа создания / инициализации массива в Swift.
Это создаст массив двойников.
Это создаст массив из 5 двойных, все инициализируются со значением 2,0.
источник
var myDoubles = [Double](repeating: 2.0, count: 5)
- обратите внимание на изменение порядка параметров и меткуrepeatedValue
вrepeating
Если вы хотите объявить пустой массив строкового типа, вы можете сделать это 5 разными способами: -
Массив любого типа: -
Массив типа Integer: -
источник
Вот некоторые общие задачи в Swift 4, которые вы можете использовать в качестве справки, пока не привыкнете к вещам.
источник
Массив в swift записывается как ** Array <Element> **, где Element - это тип значений, которые массив может хранить.
Массив может быть инициализирован как:
let emptyArray = [String]()
Это показывает, что это массив типа строки
Тип переменной emptyArray выводится как [String] из типа инициализатора.
Для создания массива типа строка с элементами
var groceryList: [String] = ["Eggs", "Milk"]
groceryList был инициализирован двумя элементами
Переменная groceryList объявлена как «массив строковых значений» , записанный как [String]. В этом конкретном массиве указан тип значения String, разрешено хранить только значения String.
Существуют различные свойства массива, такие как:
- Проверить, есть ли в массиве элементы (если массив пуст или нет)
Свойство isEmpty (Boolean) для проверки, равно ли свойство count 0:
- Добавление (добавление) элементов в массив
Вы можете добавить новый элемент в конец массива, вызвав метод массива append (_ :):
groceryList теперь содержит 3 предмета.
Или добавьте массив из одного или нескольких совместимых элементов с помощью оператора присваивания (+ =):
groceryList теперь содержит 4 предмета
groceryList теперь содержит 7 предметов
источник
Согласно Swift 5
источник
Вы можете удалить содержимое массива с передачей индекса массива или вы можете удалить все
источник
Swift 5
Аналогичный ответ дается, но он не работает для последней версии 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 вашего массива в объявлении.
Например:
Пример со страницы разработчика Apple (Array):
Надеюсь, это поможет любому, кто наткнется на эту страницу.
источник