Як створити порожній масив у Swift?


155

Я дійсно плутаюсь із способами створення масиву в Swift. Скажіть, будь ласка, скільки способів створити порожній масив з якоюсь деталлю?


9
var myArray: [Рядок] = []
Лев Дабус



То що робити, якщо я хочу зберігати будь-який об’єкт у своєму масиві?
Інуяша

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.

Видалення значень, не знаючи індексу

Але що робити, якщо цього не зробити? Що робити, якщо вашOtherArray має сотні значень, і все, що ви знаєте, ви хочете видалити значення, рівне "RemoveMe"?

if let indexValue = yourOtherArray.index(of: "RemoveMe") {
    yourOtherArray.remove(at: indexValue)
}

З цього слід розпочати!


Не впевнений, чому ця відповідь має найбільше голосів. Він відповідає на безліч запитань, які ОП ніколи не задавав, а лише надає один спосіб створити порожній масив, коли на запитання "скажіть, будь ласка, скільки способів створити порожній масив".
Кал

27
var myArr1 = [AnyObject]()

може зберігати будь-який об’єкт

var myArr2 = [String]()

може зберігати лише рядок


ви можете сказати, як додати елемент до списку масиву
Gowthaman M

25

Ви можете використовувати

var firstNames: [String] = []

24

Швидкий 3

Існує три (3) способи створення порожнього масиву в Swift, а стенографічний спосіб завжди бажаний.

Спосіб 1: Скорочений синтаксис

var arr = [Int]()

Спосіб 2: Ініціалізатор масиву

var arr = Array<Int>()

Спосіб 3: Масив з літералом масиву

var arr:[Int] = []

Спосіб 4: Кредит переходить до @BallpointBen

var arr:Array<Int> = []

1
Або var arr: Array<Int> = []. [T]це лише скороченняArray<T>
BallpointBen

@XinyangLi, чому кращий синтаксис є кращим? Чи є різниця у часі компіляції між цими 4 способами?
KlimczakM

20

Є два основні способи швидкого створення / ініціалізації масиву.

var myArray = [Double]()

Це створило б масив пар.

var myDoubles = [Double](count: 5, repeatedValue: 2.0)

Це створило б масив з 5 пар, всі ініціалізовані зі значенням 2.0.


Дякую, чи можу я оголосити так `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> = []

Масив цілого типу: -

    var myArray: Array<Int> = Array()
    var myArray = [Int]()
    var myArray: [Int] = []
    var myArray = Array<Int>()
    var myArray:Array<Int> = []

7

Ось кілька поширених завдань у 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

4

Масив у швидкій формі записується як ** Масив <Елемент> **, де Елемент - це тип значень, до якого дозволено зберігати масив.

Масив можна ініціалізувати як:

let emptyArray = [String]()

Це показує, що це масив рядка типу

Тип змінної emptyArray вважається [String] від типу ініціалізатора.

Для створення масиву рядків типу з елементами

var groceryList: [String] = ["Eggs", "Milk"]

groceryList був ініціалізований двома елементами

Змінна groceryList оголошується як "масив рядкових значень" , записаний як [String]. Цей конкретний масив вказав тип значення String, він може зберігати лише значення String.

Є різні властивості масиву, такі як:

- Щоб перевірити, чи є в масиві елементи (Якщо масив порожній чи ні)

isEmpty властивість (булева) для перевірки, чи властивість count дорівнює 0:

if groceryList.isEmpty {
    print("The groceryList list is empty.")
} else {
    print("The groceryList is not empty.")
}

- Додавання (додавання) елементів у масив

Ви можете додати новий елемент до кінця масиву, зателефонувавши у додаток масиву (_ :):

groceryList.append("Flour")

тепер продуктовий список містить 3 елементи.

Крім того, додайте масив одного або декількох сумісних елементів з оператором присвоєння додавання (+ =):

groceryList += ["Baking Powder"]

тепер продуктовий список містить 4 елементи

groceryList += ["Chocolate Spread", "Cheese", "Peanut Butter"]

тепер продуктовий список містить 7 предметів


3

Відповідно до 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()

2

ви можете видалити вміст масиву, передаючи індекс масиву, або ви можете видалити весь

    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)

1

Швидкий 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), тому ось оновлена ​​відповідь. Сподіваюся, це допомагає! :)


1

Ініціювання масиву з попередньо визначеним числом:

Array(repeating: 0, count: 10)

Я часто використовую це для відображення висловлювань, де мені потрібна визначена кількість макетних об'єктів. Наприклад,

let myObjects: [MyObject] = Array(repeating: 0, count: 10).map { _ in return MyObject() }


0

Сумісний із: Xcode 6.0.1+

Ви можете створити порожній масив, вказавши в декларації тип елемента для свого масиву.

Наприклад:

// Shortened forms are preferred
var emptyDoubles: [Double] = []

// The full type name is also allowed
var emptyFloats: Array<Float> = Array()

Приклад зі сторінки розробника яблук (масив):

Сподіваємось, це допоможе комусь натрапити на цю сторінку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.