Comment créer un tableau vide dans Swift?

155

Je suis vraiment confus avec la façon dont nous créons un tableau dans Swift. Pourriez-vous s'il vous plaît me dire combien de façons de créer un tableau vide avec quelques détails?

Inuyasha
la source
9
var myArray: [String] = []
Leo Dabus
Alors, que dois-je faire si je veux stocker n'importe quel type d'objet dans mon tableau?
Inuyasha
var myArray: [AnyObject] = []
Leo Dabus

Réponses:

297

Voici:

var yourArray = [String]()

Ce qui précède fonctionne également pour d'autres types et pas seulement pour les chaînes. C'est juste un exemple.

Ajouter des valeurs à celui-ci

Je suppose que vous voudrez éventuellement y ajouter une valeur!

yourArray.append("String Value")

Ou

let someString = "You can also pass a string variable, like this!"
yourArray.append(someString)

Ajouter en insérant

Une fois que vous avez quelques valeurs, vous pouvez insérer de nouvelles valeurs au lieu de les ajouter. Par exemple, si vous souhaitez insérer de nouveaux objets au début du tableau (au lieu de les ajouter à la fin):

yourArray.insert("Hey, I'm first!", atIndex: 0)

Ou vous pouvez utiliser des variables pour rendre votre insertion plus flexible:

let lineCutter = "I'm going to be first soon."
let positionToInsertAt = 0
yourArray.insert(lineCutter, atIndex: positionToInsertAt)

Vous voudrez peut-être éventuellement supprimer des éléments

var yourOtherArray = ["MonkeysRule", "RemoveMe", "SwiftRules"]
yourOtherArray.remove(at: 1)

Ce qui précède fonctionne très bien lorsque vous savez où se trouve la valeur dans le tableau (c'est-à-dire lorsque vous connaissez sa valeur d'index). Comme les valeurs d'index commencent à 0, la deuxième entrée sera à l'index 1.

Suppression de valeurs sans connaître l'index

Mais que faire si vous ne le faites pas? Que faire si yourOtherArray a des centaines de valeurs et que tout ce que vous savez, c'est que vous voulez supprimer celle égale à "RemoveMe"?

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

Cela devrait vous aider à démarrer!

Dave G
la source
Je ne sais pas pourquoi cette réponse a le plus de votes. Il répond à un grand nombre de questions que l'OP n'a jamais posées, mais ne fournit qu'un seul moyen de créer un tableau vide, lorsque la question posée 's'il vous plaît dites-moi combien de façons de créer un tableau vide'.
Kal
27
var myArr1 = [AnyObject]()

peut stocker n'importe quel objet

var myArr2 = [String]()

ne peut stocker que de la chaîne

Vichhai
la source
pouvez-vous dire comment ajouter un élément dans la liste des tableaux
Gowthaman M
25

Vous pourriez utiliser

var firstNames: [String] = []
DPen
la source
24

Swift 3

Il existe trois (3) façons de créer un tableau vide en Swift et la syntaxe abrégée est toujours préférée.

Méthode 1: syntaxe abrégée

var arr = [Int]()

Méthode 2: initialiseur de baie

var arr = Array<Int>()

Méthode 3: tableau avec un littéral tableau

var arr:[Int] = []

Méthode 4: le crédit va à @BallpointBen

var arr:Array<Int> = []
Lorem Ipsum Dolor
la source
1
Ou var arr: Array<Int> = []. [T]est juste un raccourci pourArray<T>
BallpointBen
@XinyangLi pourquoi la syntaxe abrégée est-elle préférée? Y a-t-il une différence de temps de compilation entre ces 4 méthodes?
KlimczakM
20

Il existe 2 façons principales de créer / initialiser un tableau dans Swift.

var myArray = [Double]()

Cela créerait un tableau de doubles.

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

Cela créerait un tableau de 5 doubles, tous initialisés avec la valeur 2.0.

Aaron
la source
Merci, puis-je déclarer comme ceci `var myArray = [AnyObject] ()`?
Inuyasha
Oui, cela fera un tableau de 'AnyObject' qui vous permettra de mettre à peu près n'importe quoi là-dedans. À moins que vous n'ayez besoin d'un tableau comme celui-ci, il serait préférable de lui donner une valeur spécifique comme 'var myArray = [String] ()'.
Aaron
Remarque Swift 4 a changé la syntaxe d'initialisation du tableau avec des valeurs répétitives comme suit: var myDoubles = [Double](repeating: 2.0, count: 5)- notez le changement d'ordre des paramètres et le changement de l'étiquette de repeatedValueàrepeating
HirdayGupta
8

Si vous souhaitez déclarer un tableau vide de type chaîne, vous pouvez le faire de 5 manières différentes: -

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

Tableau de tout type: -

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

Tableau de type entier: -

    var myArray: Array<Int> = Array()
    var myArray = [Int]()
    var myArray: [Int] = []
    var myArray = Array<Int>()
    var myArray:Array<Int> = []
piyush ranjan
la source
7

Voici quelques tâches courantes dans Swift 4 que vous pouvez utiliser comme référence jusqu'à ce que vous vous habituiez aux choses.

    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
Policier
la source
4

Array dans swift s'écrit ** Array <Element> **, où Element est le type de valeurs que le tableau est autorisé à stocker.

Le tableau peut être initialisé comme:

let emptyArray = [String]()

Il montre que c'est un tableau de type string

Le type de la variable emptyArray est déduit comme étant [String] à partir du type de l'initialiseur.

Pour créer le tableau de type string avec des éléments

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

groceryList a été initialisé avec deux éléments

La variable groceryList est déclarée comme «un tableau de valeurs de chaîne» , écrite sous la forme [String]. Ce tableau particulier a spécifié un type de valeur String, il est autorisé à stocker uniquement des valeurs String.

Il existe différentes propriétés de tableau comme:

- Pour vérifier si le tableau contient des éléments (si le tableau est vide ou non)

Propriété isEmpty (Boolean) pour vérifier si la propriété count est égale à 0:

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

- Ajout (ajout) d'éléments dans le tableau

Vous pouvez ajouter un nouvel élément à la fin d'un tableau en appelant la méthode append (_ :) du tableau:

groceryList.append("Flour")

groceryList contient maintenant 3 éléments.

Vous pouvez également ajouter un tableau d'un ou plusieurs éléments compatibles avec l'opérateur d'affectation d'addition (+ =):

groceryList += ["Baking Powder"]

groceryList contient maintenant 4 articles

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

groceryList contient maintenant 7 articles

abdos
la source
3

Selon 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()
Manoj Perumarath
la source
2

vous pouvez supprimer le contenu du tableau en passant l'index du tableau ou vous pouvez tout supprimer

    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)
Ullas Pujary
la source
1

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)
}

Une réponse similaire est donnée mais cela ne fonctionne pas pour la dernière version de Swift (Swift 5), voici donc la réponse mise à jour. J'espère que ça aide! :)

Abdullah Ajmal
la source
1

Lancement d'un tableau avec un nombre prédéfini:

Array(repeating: 0, count: 10)

J'utilise souvent ceci pour mapper des déclarations où j'ai besoin d'un nombre spécifié d'objets simulés. Par exemple,

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

thexande
la source
0

Compatible avec: Xcode 6.0.1+

Vous pouvez créer un tableau vide en spécifiant le type d'élément de votre tableau dans la déclaration.

Par exemple:

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

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

Exemple de la page des développeurs Apple (Array):

J'espère que cela aidera quiconque à tomber sur cette page.

Une folle
la source