Swift - 陣列



陣列用於儲存相同型別值的排序列表。Swift 進行嚴格檢查,即使是錯誤,也不允許您在陣列中輸入錯誤的型別。如果您將建立的陣列賦值給變數,則它始終是可變的,這意味著您可以透過新增、刪除或更改其元素來更改它;但如果您將陣列賦值給常量,則該陣列是不可變的,其大小和內容都不能更改。如果您嘗試更改它,編譯器將丟擲錯誤。

陣列可以在不同的位置儲存重複的值。陣列中的每個元素都有一個從 0 開始的索引值,以便我們可以使用該索引訪問和修改它們。

Arrays

在 Swift 中建立陣列

我們可以透過顯式指定陣列的型別來建立陣列。

語法

以下是建立陣列的語法:

var someArray : [Type] = []

我們也可以在不指定其型別的情況下建立陣列。在這種情況下,編譯器將根據賦值的值自動獲取陣列的型別。

var someArray = [value1, value2, value3]

如果您需要建立一個只有一個值(透過重複它)的陣列,您可以使用 Array() 初始化器。

var someInts = Array(repeating: "Swift", count: 4)

示例

在下面的示例中,我們使用上面討論的所有語法建立了 3 個不同的陣列:

import Foundation

// Defining an array by specifying the type
var arr1:[Int] = [11, 44, 55, 77, 88, 22]
print("Contents of arr1 :", arr1)

// Defining an array without specifying the type
var arr2 = [101, 404, 550, 770, 880, 222]
print("Contents of arr2 :", arr2)

// Defining an array with a single value 
var arr3 = Array(repeating: "Tutorialspoint", count: 3)
print("Contents of arr3 :", arr3)

輸出

上述程式產生以下結果:

Contents of arr1 : [11, 44, 55, 77, 88, 22]
Contents of arr2 : [101, 404, 550, 770, 880, 222]
Contents of arr3 : ["Tutorialspoint", "Tutorialspoint", "Tutorialspoint"]

在 Swift 中修改和訪問陣列

在陣列中,每個元素都有其自身的索引值,從 0 開始。因此,要從陣列中檢索值,請在陣列名稱之後立即在方括號中傳遞要檢索的值的索引,使用下標語法。

語法

以下是訪問和修改陣列的語法:

arrayName[indexValue]

這裡,索引從 0 開始,這意味著第一個元素可以使用索引 0 訪問,第二個元素可以使用索引 1 訪問,依此類推。

示例

import Foundation

// Defining and initializing an array
var someArr:[Int] = [11, 44, 55, 77, 88, 22]

// Accessing the element present at index 3
// Using subscript syntax
print("Array element:", someArr[3])

輸出

編譯並執行上述程式碼後,將產生以下結果:

Array element: 77

使用下標語法,我們還可以透過為現有索引賦值新值來修改陣列的元素。

示例

import Foundation

// Defining and initializing an array
var someArr:[Int] = [11, 44, 55, 77, 88, 22]

// Modifying the array element present at index 3
// Using subscript syntax
someArr[3] = 33
print("Modified Array element:", someArr[3])

輸出

編譯並執行上述程式碼後,將產生以下結果:

Modified Array element: 33

在 Swift 中向陣列新增新元素

我們可以使用以下方法向現有陣列新增新元素。

使用 append() 方法

它在指定陣列的末尾新增一個新元素。

示例

import Foundation

// Defining and initializing an array
var someArr:[Int] = [43, 32, 11]

// Appending new element using append() method
someArr.append(34)
someArr.append(60)

print("Updated Array", someArr)
輸出

編譯並執行上述程式碼後,將產生以下結果:

Updated Array [43, 32, 11, 34, 60]

使用加法賦值運算子(+=)

我們還可以使用加法賦值運算子在陣列末尾新增新項。

示例

import Foundation

// Defining and initializing an array
var someArr:[Int] = [43, 32, 11]

// Adding new element using += operator 
someArr += [30]
someArr += [90]

print("Updated Array", someArr)
輸出

編譯並執行上述程式碼後,將產生以下結果:

Updated Array [43, 32, 11, 30, 90]

在 Swift 中迭代陣列

迭代陣列是程式設計中最基本和最常用的操作。它允許開發人員訪問和處理指定陣列的各個元素。在 Swift 中,我們可以使用以下方法迭代陣列:

使用 for-in 迴圈

我們可以使用 for-in 迴圈迭代陣列中的整套值。這是訪問和順序處理給定陣列的每個元素的最簡單、最簡潔的方法。

示例

import Foundation

// Defining and initializing an array
var someArr:[Int] = [3, 56, 12, 4, 23, 5, 6, 7, 8]

print("Array Elements:")
// Iterating over the array using a for-in loop
for x in someArr{
   print(x)
}
輸出

編譯並執行上述程式碼後,將產生以下結果:

Array Elements:
3
56
12
4
23
5
6
7
8

將 enumerated() 函式與 for-in 迴圈一起使用

我們還可以將 enumerated() 函式與 for-in 迴圈一起使用,它將返回專案的索引及其值。

示例

import Foundation

// Defining and initializing an array
var someArr:[Int] = [3, 56, 23, 34, 5, 78, 9]

print("Array Elements with their index value:")

// Iterating over the array using for-in loop along with enumerated() function
for (index, element) in someArr.enumerated() {
   print("Value at index = \(index) is \(element)")
}
輸出

編譯並執行上述程式碼後,將產生以下結果:

Array Elements with their index value:
Value at index = 0 is 3
Value at index = 1 is 56
Value at index = 2 is 23
Value at index = 3 is 34
Value at index = 4 is 5
Value at index = 5 is 78
Value at index = 6 is 9

使用 while 迴圈

我們還可以使用 while 迴圈迭代給定陣列的元素。它提供對迭代的顯式控制。在需要對迭代進行細粒度控制的地方,它非常有用。

示例

import Foundation

// Defining and initializing an array
var someArr:[Int] = [3, 56, 23, 34, 5, 78, 9]

print("Array Elements:")

var indexVal = 0

// Iterating over the array using while loop
while indexVal < someArr.count {
   print(someArr[indexVal])
   indexVal += 1
}
輸出

編譯並執行上述程式碼後,將產生以下結果:

Array Elements:
3
56
23
34
5
78
9

使用 forEach() 函式

Swift 提供一個名為 forEach() 的預定義函式來迭代給定陣列。它用於對給定陣列的各個元素執行簡單的操作,而無需顯式迭代。

示例

import Foundation

// Defining and initializing an array
var someArr:[String] = ["Mona", "Pihu", "Mayank", "Sumit"]

print("Array Elements:")

// Iterating over the array using forEach() function
someArr.forEach { names in
   print(names)
}
輸出

編譯並執行上述程式碼後,將產生以下結果:

Array Elements:
Mona
Pihu
Mayank
Sumit

在 Swift 中新增兩個陣列

我們可以使用加法運算子 (+) 來新增相同型別的兩個陣列,這將產生一個包含來自這兩個陣列的值的新陣列。

語法

以下是新增兩個陣列的語法:

var result = Array1 + Array2

示例

import Foundation

// Defining and initializing an array
var someArr1:[Int] = [11, 44, 55, 77, 88, 22]
var someArr2:[Int] = [10, 40, 50, 70, 80, 20]

// Adding two arrays of the same type
// Using + operator
var resultantArray = someArr1 + someArr2

print("Concatenated Array: ", resultantArray)

輸出

編譯並執行上述程式碼後,將產生以下結果:

Concatenated Array:  [11, 44, 55, 77, 88, 22, 10, 40, 50, 70, 80, 20]

Swift 中的 count 屬性

count 屬性用於計算指定陣列中存在的元素總數。

語法

以下是 count 屬性的語法:

Array.count

示例

import Foundation

// Defining and initializing arrays 
var someArr1:[Int] = [3, 56, 12, 4, 23, 5, 6, 7, 8]
var someArr2:[String] = ["Blue", "Black", "Green", "Yellow"]
var someArr3:[Int] = []

// Counting the total number of elements present
// in the given array
// Using count property
print("Total number of elements present in someArr1 = \(someArr1.count)")
print("Total number of elements present in someArr2 = \(someArr2.count)")
print("Total number of elements present in someArr3 = \(someArr3.count)")

輸出

編譯並執行上述程式碼後,將產生以下結果:

Total number of elements present in someArr1 = 9
Total number of elements present in someArr2 = 4
Total number of elements present in someArr3 = 0

Swift 中的 empty 屬性

empty 屬性用於檢查給定陣列是否為空。如果給定陣列為空,則此屬性將返回 true。如果給定陣列包含某些元素,則此屬性將返回 false。

語法

以下是 empty 屬性的語法:

array.isEmpty 

示例

import Foundation

// Defining and initializing arrays 
var someArr1:[Int] = [2, 5, 66, 44, 32, 2, 12]
var someArr2:[String] = ["Blue, Black"]
var someArr3:[Int] = []

// Checking if the given arrays are empty or not
// Using isEmpty property
print("Is someArr1 is empty? = \(someArr1.isEmpty)")
print("Is someArr2 is empty? = \(someArr2.isEmpty)")
print("Is someArr3 is empty? = \(someArr3.isEmpty)")

輸出

編譯並執行上述程式碼後,將產生以下結果:

Is someArr1 is empty? = false
Is someArr2 is empty? = false
Is someArr3 is empty? = true
廣告