Jak stworzyć pustą tablicę w Swift?


155

Jestem naprawdę zdezorientowany sposobem, w jaki tworzymy tablicę w Swift. Czy możesz mi powiedzieć, na ile sposobów można utworzyć pustą tablicę z pewnymi szczegółami?


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



Więc co powinienem zrobić, jeśli chcę przechowywać dowolny obiekt w mojej tablicy?
Inuyasha

var myArray: [AnyObject] = []
Leo Dabus

Odpowiedzi:


297

Proszę bardzo:

var yourArray = [String]()

Powyższe działa również dla innych typów, a nie tylko dla ciągów. To tylko przykład.

Dodawanie do niego wartości

Zakładam, że w końcu będziesz chciał dodać do tego wartość!

yourArray.append("String Value")

Lub

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

Dodaj przez wstawienie

Gdy masz już kilka wartości, możesz wstawić nowe wartości zamiast dołączać. Na przykład, jeśli chcesz wstawić nowe obiekty na początku tablicy (zamiast dołączać je na końcu):

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

Lub możesz użyć zmiennych, aby uczynić wkładkę bardziej elastyczną:

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

W końcu możesz chcieć usunąć niektóre rzeczy

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

Powyższe działa świetnie, gdy wiesz, gdzie w tablicy znajduje się wartość (to znaczy, gdy znasz wartość jej indeksu). Ponieważ wartości indeksu zaczynają się od 0, drugi wpis będzie miał indeks 1.

Usuwanie wartości bez znajomości indeksu

A co jeśli tego nie zrobisz? Co się stanie, jeśli twoja tablicaOtherArray ma setki wartości i wiesz tylko, że chcesz usunąć tę równą „RemoveMe”?

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

To powinno zacząć!


Nie wiem, dlaczego ta odpowiedź ma najwięcej głosów. Odpowiada na wiele pytań, których OP nigdy nie zadawał, ale zapewnia tylko jeden sposób na utworzenie pustej tablicy, gdy pojawia się pytanie „proszę powiedz mi, na ile sposobów utworzyć pustą tablicę”.
Kal,

27
var myArr1 = [AnyObject]()

może przechowywać dowolny przedmiot

var myArr2 = [String]()

może przechowywać tylko ciąg


czy możesz powiedzieć, jak dodać element do listy tablic
Gowthaman M


24

Szybki 3

Istnieją trzy (3) sposoby tworzenia pustej tablicy w języku Swift, przy czym metoda skrócona jest zawsze preferowana.

Metoda 1: skrócona składnia

var arr = [Int]()

Metoda 2: inicjator tablicy

var arr = Array<Int>()

Metoda 3: Tablica z literałem tablicowym

var arr:[Int] = []

Metoda 4: Kredyt trafia do @BallpointBen

var arr:Array<Int> = []

1
Lub var arr: Array<Int> = []. [T]to skrót odArray<T>
BallpointBen

@XinyangLi dlaczego preferowana jest skrócona składnia? Czy jest jakaś różnica w czasie kompilacji między tymi 4 sposobami?
KlimczakM

20

Istnieją 2 główne sposoby szybkiego tworzenia / inicjowania tablicy.

var myArray = [Double]()

Stworzyłoby to tablicę Doubles.

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

Stworzyłoby to tablicę 5 podwójnych, wszystkie zainicjowane wartością 2,0.


Dziękuję, czy mogę zadeklarować w ten sposób `var myArray = [AnyObject] ()`?
Inuyasha

Tak, utworzy to tablicę „AnyObject”, która pozwoli ci umieścić tam prawie wszystko. O ile nie potrzebujesz takiej tablicy, lepiej byłoby nadać jej konkretną wartość, na przykład „var myArray = [String] ()”.
Aaron

Uwaga Swift 4 zmienił składnię inicjalizacji tablicy z powtarzającymi się wartościami na następującą: var myDoubles = [Double](repeating: 2.0, count: 5)- zwróć uwagę na zmianę kolejności parametrów i zmianę etykiety repeatedValuenarepeating
HirdayGupta

8

Jeśli chcesz zadeklarować pustą tablicę typu string, możesz to zrobić na 5 różnych sposobów: -

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

Tablica dowolnego typu: -

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

Tablica typu Integer: -

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

7

Oto kilka typowych zadań w Swift 4, których możesz używać jako odniesienia, dopóki nie przyzwyczaisz się do rzeczy.

    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

Tablica w swift jest zapisywana jako ** Array <Element> **, gdzie Element jest typem wartości, które tablica może przechowywać.

Tablicę można zainicjować jako:

let emptyArray = [String]()

Pokazuje, że jest to tablica typu string

Typ zmiennej emptyArray jest wywnioskowany jako [String] z typu inicjatora.

Do tworzenia tablicy typu string z elementami

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

Lista spożywcza została zainicjowana dwoma elementami

Zmienna groceryList jest zadeklarowana jako „tablica wartości ciągów” zapisywana jako [String]. Ta konkretna tablica ma określony typ wartości String, dozwolone jest przechowywanie tylko wartości String.

Istnieją różne właściwości tablicy, takie jak:

- Aby sprawdzić, czy tablica zawiera elementy (jeśli tablica jest pusta, czy nie)

Właściwość isEmpty (Boolean) do sprawdzania, czy właściwość count jest równa 0:

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

- Dołączanie (dodawanie) elementów w tablicy

Możesz dodać nowy element na końcu tablicy, wywołując metodę append (_ :) tablicy:

groceryList.append("Flour")

Lista zakupów zawiera teraz 3 elementy.

Alternatywnie, dołącz tablicę jednego lub więcej zgodnych elementów za pomocą operatora przypisania dodawania (+ =):

groceryList += ["Baking Powder"]

Lista zakupów zawiera teraz 4 elementy

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

Lista zakupów zawiera teraz 7 pozycji


3

Zgodnie ze 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

możesz usunąć zawartość tablicy, przekazując jej indeks lub możesz usunąć wszystko

    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

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

Podano podobną odpowiedź, ale to nie działa w przypadku najnowszej wersji Swift (Swift 5), więc oto zaktualizowana odpowiedź. Mam nadzieję, że to pomoże! :)


1

Inicjowanie tablicy z predefiniowaną liczbą:

Array(repeating: 0, count: 10)

Często używam tego do mapowania instrukcji, w których potrzebuję określonej liczby pozorowanych obiektów. Na przykład,

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


0

Zgodny z: Xcode 6.0.1+

Możesz utworzyć pustą tablicę, określając typ elementu tablicy w deklaracji.

Na przykład:

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

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

Przykład ze strony programisty Apple (tablica):

Mam nadzieję, że pomoże to każdemu, kto natknie się na tę stronę.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.