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
, String
klasy 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, true
jeś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ć last
wł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ć remove
wł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 removeFirst
usuwanie pierwszego elementu tablicy, removeLast
usuwanie ostatniego elementu tablicy i removeAll
opróż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