Swift Arrays: jak go używać i dlaczego? (Z przykładami)

W tym samouczku nauczysz się tablic, ich tworzenia, uzyskiwania dostępu do wartości tablicy i niektórych typowych operacji na tablicy.

W poprzednim artykule Swift Data Types dowiedzieliśmy się o tworzeniu zmiennych / stałych pewnego typu danych, które mogą przechowywać pojedynczą wartość.

Ale co, jeśli chcemy przechowywać wiele wartości tego samego typu danych. W Swift używamy czegoś, co nazywa się Array .

Co to jest tablica?

Tablica jest po prostu kontenerem, który może przechowywać wiele danych (wartości) typu danych w uporządkowanej liście, tj. Otrzymujesz elementy w tej samej kolejności, w jakiej zdefiniowałeś elementy w tablicy.

Tablica może przechowywać wartości dowolnego typu danych, np Int, Stringklasy itp

Jak zadeklarować tablicę w Swift?

Możesz utworzyć pustą tablicę, określając typ danych w nawiasach kwadratowych ().

Pamiętaj, że musisz umieścić typ w nawiasach kwadratowych, w przeciwnym razie Swift potraktuje go jako normalny typ danych i możesz przechowywać w nim tylko jedną wartość.

Przykład 1: Deklarowanie pustej tablicy

 let emptyIntArr:(Int) = () print(emptyIntArr) 

Po uruchomieniu programu wynik będzie następujący:

 ()

W powyższym programie zadeklarowaliśmy stałą emptyIntArr, która może przechowywać tablicę liczb całkowitych i zainicjowaną wartością 0.

LUB

Możesz również zdefiniować pustą tablicę, jak poniżej:

 let emptyIntArr:Array = Array() print(emptyIntArr) 

LUB

Ponieważ swift jest językiem wnioskowania o typie, można również utworzyć tablicę bezpośrednio bez określania typu danych, ale należy zainicjować z pewnymi wartościami, aby kompilator mógł wywnioskować jej typ jako:

Przykład 2: Deklarowanie tablicy z pewnymi wartościami

 let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr) 

Po uruchomieniu programu wynik będzie następujący:

 (1, 2, 3, 4, 5, 6, 7, 8, 9)

W powyższym programie zadeklarowaliśmy stałą someIntArr, która może przechowywać tablicę typu Integer bez jawnego określania typu. Ponadto zainicjowaliśmy tablicę z wartościami 1, 2, 3, 4, 5, 6, 7, 8, 9 .

Przykład 3: Deklarowanie tablicy zawierającej określoną liczbę pojedynczej powtarzanej wartości

Możesz również powtórzyć wartość określoną liczbę razy, aby utworzyć tablicę w języku Swift. Odbywa się to za pomocą inicjatora tablicy z powtarzaniem i liczbą.

 let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues) 

Po uruchomieniu programu wynik będzie następujący:

 („Witaj świecie”, „Witaj świecie”, „Witaj świecie”, „Witaj świecie”)

W powyższym programie zdefiniowaliśmy stałą arrWithRepeatingValues, która przechowuje tablicę ciągów Hello, World i powtarza tę samą wartość 4 razy, jak określono w liczniku.

Uwaga: w języku Swift nie można tworzyć tablic o stałej długości, tak jak w innych językach programowania. Tablica o stałej długości oznacza, że ​​tablica nie może mieć więcej elementów niż zdefiniowano podczas inicjalizacji.

Jak wartości są przechowywane w tablicy?

Załóżmy, że masz stałą, która może przechowywać tablicę ciągów, jak poniżej:

 niech intArr = (21, 34, 54, 12)

Obrazowe przedstawienie sposobu przechowywania wartości w tablicy można zobaczyć poniżej:

Wszystkie tworzone tablice zaczynają się od indeksu 0. Pierwszy element jest przechowywany w indeksie 0, drugi element w następnym indeksie (1) i tak dalej.

Jak uzyskać dostęp do elementów tablicy w Swift?

Możesz uzyskać dostęp do elementów tablicy za pomocą składni indeksu, tj. Musisz umieścić indeks wartości, do której chcesz uzyskać dostęp, w nawiasach kwadratowych bezpośrednio po nazwie tablicy.

Załóżmy, że zadeklarowałeś tablicę intArr jak powyżej. Pierwszy element to intArr (0), drugi to intArr (1) i tak dalej.

Przykład 4: Dostęp do elementów tablicy

 let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3)) 

Po uruchomieniu programu wynik będzie następujący:

 21 34 54 12 

Możesz również uzyskać dostęp do elementów tablicy za pomocą pętli for-in. Zobacz pętlę Swift For-in, aby dowiedzieć się więcej.

Jak modyfikować / dodawać elementy tablicy w Swift?

Możesz modyfikować elementy tablicy za pomocą składni indeksu dolnego i operatora przypisania, tj. Musisz umieścić indeks wartości, którą chcesz zaktualizować, w nawiasach kwadratowych po nazwie tablicy, po której następuje operator przypisania i nowa wartość.

Przykład 5: Modyfikacja elementów tablicy

 var intArr = (21, 34, 54, 12) intArr(0) = 12 intArr(1) = 42 intArr(2) = 45 intArr(3) = 21 print(intArr) 

Po uruchomieniu programu wynik będzie następujący:

 (12, 42, 45, 21)

Możesz także zmodyfikować wszystkie elementy tablicy nowymi wartościami, jak poniżej:

Przykład 6: Modyfikacja tablicy jako całości

 var intArr = (21, 34, 54, 12) intArr = (1,2,3) print(intArr) 

Po uruchomieniu programu wynik będzie następujący:

 (1, 2, 3)

Jednak aby dodać nowy element do istniejącej tablicy, nie możesz użyć składni indeksu dolnego. Jeśli to zrobisz, skończysz z błędem. Nie możesz zrobić czegoś takiego:

Przykład 7: Dodawanie nowego elementu do tablicy przy użyciu składni indeksu dolnego (nie działa)

 var intArr = (21, 34, 54, 12) intArr(4) = 10 

Po uruchomieniu programu wynik będzie następujący:

 błąd krytyczny: indeks poza zakresem

Powyższy program daje błąd podczas przypisywania nowego elementu do tablicy intArr. Dzieje się tak, ponieważ intArr nie przydzielił dodatkowej pamięci dla indeksu 4 i nie może przechowywać podanej wartości.

Aby poprawnie wstawić nowy element do tablicy, używamy append()metody array . append()opisano w poniższej sekcji.

Kilka przydatnych funkcji i właściwości tablicy

1. isEmpty

Ta właściwość określa, czy tablica jest pusta, czy nie. Zwraca, truejeśli tablica nie zawiera żadnej wartości, w przeciwnym razie zwraca false.

Przykład 8: Jak działa isEmpty?

 let intArr = (21, 34, 54, 12) print(intArr.isEmpty) 

Po uruchomieniu programu wynik będzie następujący:

 fałszywy

2. pierwszy

Ta właściwość służy do uzyskiwania dostępu do pierwszego elementu tablicy.

Przykład 9: Jak działa na początku?

 let intArr = (21, 34, 54, 12) print(intArr.first) 

Po uruchomieniu programu wynik będzie następujący:

 Opcjonalnie (21)

Podobnie możesz użyć lastwłaściwości, aby uzyskać dostęp do ostatniego elementu tablicy.

3. dołączyć

Funkcja append służy do wstawiania / dołączania elementu na końcu tablicy.

Przykład 10: Jak działa dołączanie?

 var intArr = (21, 34, 54, 12) intArr.append(32) print(intArr) 

Po uruchomieniu programu wynik będzie następujący:

 (21, 34, 54, 12, 32)

Możesz także dołączyć zawartość jednej tablicy do innej jako:

 var firstArr = (1,2,3,4) var secondArr = (5,6,7,8) firstArr.append(contentsOf: secondArr) print(firstArr) 

Po uruchomieniu programu wynik będzie następujący:

 (1, 2, 3, 4, 5, 6, 7, 8)

4. włóż

Ta funkcja służy do wstawiania / dołączania elementu pod określonym indeksem tablicy.

Przykład 11: Jak działa insert?

 var intArr = (21,34,54,12) intArr.insert(22, at: 1) print(intArr) 

Po uruchomieniu programu wynik będzie następujący:

 (21, 22, 34, 54, 12)

Podobnie możesz użyć removewłaściwości, aby usunąć element o określonym indeksie.

5. usunąć

Ta funkcja usuwa i zwraca wartość określoną w określonej pozycji z tablicy.

Przykład 12: Jak działa usuwanie?

 var strArr = ("ab","bc","cd","de") let removedVal = strArr.remove(at: 1) print("removed value is (removedVal)") print(strArr) 

Po uruchomieniu programu wynik będzie następujący:

 usunięta wartość to bc („ab”, „cd”, „de”) 

Podobnie, możesz również użyć funkcji, takich jak removeFirstusuwanie pierwszego elementu tablicy, removeLastusuwanie ostatniego elementu tablicy i removeAllopróżnianie tablicy.

6. odwrócone

Ta funkcja zwraca elementy tablicy w odwrotnej kolejności.

Przykład 13: Jak działa reverse ()?

 var intArr = (21,22,23,24) let reversedArr = Array(intArr.reversed()) print(reversedArr) 

Po uruchomieniu programu wynik będzie następujący:

 (24, 23, 22, 21)

7. liczyć

Ta właściwość zwraca całkowitą liczbę elementów w tablicy.

Przykład 14: liczyć

 let floatArr = (10.2,21.3,32.0,41.3) print(floatArr.count) 

Po uruchomieniu programu wynik będzie następujący:

 4

Rzeczy do zapamiętania

Korzystając ze składni indeksu dolnego w celu uzyskania dostępu do elementów tablicy w języku Swift, musisz mieć pewność, że wartość znajduje się w indeksie, w przeciwnym razie wystąpi awaria środowiska uruchomieniowego. Zobaczmy to na przykładzie:

 let intArr = (21, 34, 54, 12) print(intArr(-1)) 

Po uruchomieniu programu wynik będzie następujący:

 błąd krytyczny: indeks poza zakresem

W powyższym programie nie ma wartości w indeksie -1 . Więc kiedy spróbujesz uzyskać dostęp do wartości w indeksie, nastąpi awaria środowiska wykonawczego.

Aby temu zapobiec, najpierw znajdź indeks elementu, który próbujesz usunąć. A następnie usuń element w indeksie, jak poniżej:

 var intArr = (21, 34, 54, 12) if let index = intArr.index(of: 34) ( print("found index") let val = intArr.remove(at: index) print(val) ) 

Po uruchomieniu programu wynik będzie następujący:

 znaleziony indeks 34 

Interesujące artykuły...