Come creare un array vuoto in Swift?


154

Sono davvero confuso con il modo in cui creiamo un array in Swift. Potresti dirmi in quanti modi creare un array vuoto con alcuni dettagli?


9
var myArray: [String] = []
Leo Dabus,



Quindi cosa devo fare se voglio archiviare qualsiasi tipo di oggetto nel mio array?
Inuyasha,

var myArray: [AnyObject] = []
Leo Dabus,

Risposte:


296

Ecco qui:

var yourArray = [String]()

Quanto sopra funziona anche per altri tipi e non solo per le stringhe. È solo un esempio.

Aggiunta di valori ad esso

Presumo che alla fine vorrai aggiungere un valore ad esso!

yourArray.append("String Value")

O

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

Aggiungi inserendo

Una volta che hai alcuni valori, puoi inserire nuovi valori invece di aggiungere. Ad esempio, se si desidera inserire nuovi oggetti all'inizio dell'array (anziché aggiungerli alla fine):

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

Oppure puoi usare le variabili per rendere il tuo inserto più flessibile:

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

Alla fine potresti voler rimuovere alcune cose

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

Quanto sopra funziona benissimo quando sai dove si trova l'array (ovvero quando conosci il suo valore di indice). Poiché i valori dell'indice iniziano da 0, la seconda voce sarà all'indice 1.

Rimozione di valori senza conoscere l'indice

E se non lo facessi? Cosa succede se yourOtherArray ha centinaia di valori e tutto quello che sai è che vuoi rimuovere quello uguale a "RemoveMe"?

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

Questo dovrebbe farti cominciare!


Non sono sicuro del perché questa risposta abbia il maggior numero di voti. Risponde a molte domande che l'OP non ha mai posto, ma fornisce solo un modo per creare un array vuoto, quando la domanda posta "per favore dimmi quanti modi per creare un array vuoto".
Kal

27
var myArr1 = [AnyObject]()

può memorizzare qualsiasi oggetto

var myArr2 = [String]()

può memorizzare solo stringhe


puoi dire come aggiungere un elemento nella lista degli array
Gowthaman M

25

Puoi usare

var firstNames: [String] = []

24

Swift 3

Esistono tre (3) modi per creare un array vuoto in modo Swift e la sintassi abbreviata è sempre preferita.

Metodo 1: sintassi abbreviata

var arr = [Int]()

Metodo 2: inizializzatore di array

var arr = Array<Int>()

Metodo 3: matrice con una matrice letterale

var arr:[Int] = []

Metodo 4: il credito va a @BallpointBen

var arr:Array<Int> = []

1
Or var arr: Array<Int> = []. [T]è solo una scorciatoia perArray<T>
BallpointBen,

@XinyangLi perché è preferita la sintassi abbreviata? C'è qualche differenza nel tempo di compilazione tra quei 4 modi?
KlimczakM,

20

Esistono 2 modi principali per creare / inizializzare un array in modo rapido.

var myArray = [Double]()

Ciò creerebbe una matrice di doppi.

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

Ciò creerebbe un array di 5 doppie, tutte inizializzate con il valore di 2.0.


Grazie, posso dichiarare in questo modo `var myArray = [AnyObject] ()`?
Inuyasha,

Sì, ciò creerà un array di "AnyObject" che ti permetterà di inserire praticamente qualsiasi cosa. A meno che non sia necessario un array come questo, sarebbe meglio dargli un valore specifico come 'var myArray = [String] ()'.
Aaron,

Nota Swift 4 cambiata la sintassi per l'inizializzazione l'array con valori multipli di seguito: var myDoubles = [Double](repeating: 2.0, count: 5)- nota il cambiamento di ordine dei parametri e la variazione della etichetta repeatedValuedirepeating
HirdayGupta

8

Se si desidera dichiarare un array vuoto di tipo stringa, è possibile farlo in 5 modi diversi: -

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

Matrice di qualsiasi tipo: -

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

Matrice di tipo intero: -

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

7

Ecco alcune attività comuni in Swift 4 che puoi utilizzare come riferimento fino a quando non ti abitui alle cose.

    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

L'array in swift è scritto come ** Array <Element> **, dove Element è il tipo di valori che l'array può memorizzare.

La matrice può essere inizializzata come:

let emptyArray = [String]()

Mostra che è una matrice di tipo stringa

Si deduce che il tipo della variabile emptyArray sia [String] dal tipo dell'inizializzatore.

Per la creazione della matrice di tipo stringa con elementi

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

groceryList è stato inizializzato con due articoli

La variabile groceryList è dichiarata come "una matrice di valori di stringa" , scritta come [String]. Questo particolare array ha specificato un tipo di valore String, è consentito memorizzare solo valori String.

Esistono varie proprietà di array come:

- Per verificare se l'array ha elementi (se l'array è vuoto o no)

Proprietà isEmpty (booleana) per verificare se la proprietà count è uguale a 0:

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

- Aggiunta (aggiunta) di elementi nella matrice

È possibile aggiungere un nuovo elemento alla fine di un array chiamando il metodo append (_ :) dell'array:

groceryList.append("Flour")

La drogheria ora contiene 3 articoli.

In alternativa, aggiungi una matrice di uno o più articoli compatibili con l'operatore di assegnazione addizione (+ =):

groceryList += ["Baking Powder"]

La drogheria ora contiene 4 articoli

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

La drogheria ora contiene 7 articoli


3

Come da 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

puoi rimuovere il contenuto dell'array con il passaggio dell'indice dell'array oppure puoi rimuovere tutto

    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

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

Viene fornita una risposta simile ma non funziona per l'ultima versione di Swift (Swift 5), quindi ecco la risposta aggiornata. Spero che sia d'aiuto! :)


1

Avvio di un array con un conteggio predefinito:

Array(repeating: 0, count: 10)

Lo uso spesso per le istruzioni di mappatura in cui ho bisogno di un numero specificato di oggetti finti. Per esempio,

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


0

Compatibile con: Xcode 6.0.1+

È possibile creare un array vuoto specificando il tipo di elemento dell'array nella dichiarazione.

Per esempio:

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

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

Esempio dalla pagina degli sviluppatori Apple (array):

Spero che questo aiuti chiunque inciampare in questa pagina.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.