2015-05-25 12 views
80

Sono davvero confuso con i modi in cui creiamo un array in Swift. Potresti dirmi quanti modi per creare un array vuoto con qualche dettaglio?Come creare un array vuoto in Swift?

+4

var myArray: [String] = [] –

+4

È necessario leggere questa https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html –

+0

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html#//apple_ref/doc/uid/TP40014097-CH8-ID105 –

risposta

149

Qui si va:

var yourArray = [String]() 

È possibile che questo funziona anche per altri tipi e non solo stringhe. È solo un esempio

Aggiunta di valori ad esso

presumo più volte si desidera aggiungere un valore ad essa!

yourArray.append("String Value") 

O

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

Aggiunta da Inserimento

Una volta che avete alcuni valori, è possibile inserire nuovi valori invece di aggiungere. Ad esempio, se si voleva inserire nuovi oggetti all'inizio della matrice (invece di appendere alla fine):

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

Oppure è possibile utilizzare le variabili per rendere il vostro inserimento più flessibile:

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

si può eventualmente essere opportuno rimuovere determinati Stuff

var yourOtherArray = ["MonkeysRule", "RemoveMe", "SwiftRules"] 
yourOtherArray.removeAtIndex(1) 

è possibile che questo funziona alla grande quando si sa dove nella matrice il valore è (che è, quando conosci il suo valore di indice). Mentre i valori di indice iniziano a 0, la seconda voce sarà a indice 1.

Rimozione di valori senza conoscere l'indice

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

if let indexValue = yourOtherArray.indexOf("RemoveMe") { 
    yourOtherArray.removeAtIndex(indexValue) 
} 

Questo dovrebbe iniziare!

10

Ci sono 2 modi principali per creare/intializzare una matrice in rapido.

var myArray = [Double]() 

Ciò creerebbe una matrice di doppie.

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

Ciò creerebbe una matrice di 5 doppi, tutti inizializzati con il valore di 2.0.

+0

Grazie, posso dichiarare come questo 'var myArray = [AnyObject]()'? – Inuyasha

+0

Sì, questo 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

18
var myArr1 = [AnyObject]() 

può memorizzare qualsiasi oggetto

var myArr2 = [String]() 

può memorizzare solo stringa

16

Si potrebbe utilizzare

var firstNames: [String] = [] 
2

Array in rapida è scritto come ** Array < Elemento> **, in cui elemento è il tipo di valori della matrice è consentito di memorizzare.

Array può essere inizializzato come:

let emptyArray = [String]()

Essa mostra che la sua una matrice di tipo stringa

Il tipo di variabile emptyArray viene dedotta per essere [String] dal tipo dell'inizializzatore.

per creare la matrice di tipo stringa con elementi

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

groceryList È stato assegnato due elementi

La variabile groceryList viene dichiarata come “una matrice di valori stringa” , scritto come [String]. Questo particolare array ha specificato un tipo di valore di String, è consentito archiviare solo valori String.

Ci sono vari properities di matrice come:

- Per verificare se array ha elementi (Se array è vuoto o meno)

struttura isEmpty (booleana) per verificare se la proprietà conteggio è uguale a 0:

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

- elementi Accodamento (aggiunta) in matrice

È possibile aggiungere una nuova voce alla fine di un array chiamando accodamento della matrice (_ :) metodo:

groceryList.append("Flour") 

groceryList ora contiene 3 articoli.

alternativa, aggiungere una serie di uno o più compatibili oggetti con l'operatore di assegnazione addizione (+ =):

groceryList += ["Baking Powder"] 

groceryList ora contiene 4 prodotti

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

groceryList ora contiene 7 oggetti

2

è possibile rimuovere il contenuto dell'array con il passaggio dell'indice di array oppure è possibile 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) 
10

Swift 3

Ci sono tre (3) modi per creare un array vuoto in Swift e sintassi ridotta modo è sempre preferito.

Metodo 1: Shorthand Sintassi

var arr = [Int]() 

Metodo 2: Array Initializer

var arr = Array<Int>() 

Metodo 3: Array con un'Array letterale

var arr:[Int] = [] 

Metodo 4: credito va a @ BallpointBen

var arr:Array<Int> = [] 
+1

Oppure 'var arr: Array = []'. '[T]' è solo una scorciatoia per 'Array ' – BallpointBen

+0

Aggiornamento della risposta, grazie. –

4

Ecco alcune attività comuni in Swift 4 che puoi utilizzare come riferimento finché 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 
0

Array(repeating: 0, count: 10). Lo uso spesso per le istruzioni di mappatura in cui ho bisogno di un numero specificato di oggetti fittizi. Ad esempio,

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