Swift數組

Swift 4數組用於存儲相同類型的有序值列表。 Swift 4進行了嚴格的檢查,不允許在數組中輸入錯誤的類型。

如果將已創建的數組分配給變數,則它總是可變的,這意味著可以通過添加,刪除或更改其項來更改它; 但是如果將數組賦值給常量,那麼該數組是不可變的,並且其大小和內容不能更改。

創建數組

可以使用以下初始化語法創建某個類型的空數組 -

var someArray = [SomeType]()

以下是創建給定大小的數組並使用值初始化它的語法 -

var someArray = [SomeType](count:NumbeOfElements, repeatedValue:InitialValue)

可以使用以下語句創建一個具有3個元素且初始值為零的Int類型的空數組 -

var someInts = [Int](count: 3, repeatedValue: 0)

下麵是另一個示例,用於創建三個元素的數組並為該數組分配三個值 -

var someInts:[Int] = [10, 20, 30]

訪問數組

使用下標語法從數組中檢索值,並在數組名稱後面的方括號內傳遞要檢索的值的索引,如下所示 -

var someVar = someArray[index]

這裏,索引從0開始,可以使用索引0訪問第一個元素,可以使用索引1訪問第二個元素,依此類推。 以下示例顯示如何創建,初始化和訪問數組 -

var someInts = [Int](count: 3, repeatedValue: 10)

var someVar = someInts[0]
print( "Value of first element is \(someVar)" )
print( "Value of second element is \(someInts[1])" )
print( "Value of third element is \(someInts[2])" )

編譯並執行上述代碼時,會產生以下結果 -

Value of first element is 10
Value of second element is 10
Value of third element is 10

修改數組

可以使用append()方法或附加賦值運算符(+=)在數組末尾添加新項。 看一下下麵的例子。 在這裏,首先創建一個空數組,然後將新元素添加到同一個數組中 -

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

var someVar = someInts[0]

print( "Value of first element is \(someVar)" )
print( "Value of second element is \(someInts[1])" )
print( "Value of third element is \(someInts[2])" )

編譯並執行上述代碼時,會產生以下結果 -

Value of first element is 20
Value of second element is 30
Value of third element is 40

可以通過在給定索引處分配新值來修改數組的現有元素,如以下示例所示 -

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

// Modify last element
someInts[2] = 50

var someVar = someInts[0]

print( "Value of first element is \(someVar)" )
print( "Value of second element is \(someInts[1])" )
print( "Value of third element is \(someInts[2])" )

編譯並執行上述代碼時,會產生以下結果 -

Value of first element is 20
Value of second element is 30
Value of third element is 50

迭代數組

使用for-in迴圈迭代數組中的整個值集,如以下示例所示 -

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs += ["Google"]
for item in someStrs {
   print(item)
}

編譯並執行上述代碼時,會產生以下結果 -

Apple
Amazon
Google

使用enumerate()函數返回專案的索引及其值,如下例所示 -

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs += ["Google"]

for (index, item) in someStrs.enumerated() {
   print("Value at index = \(index) is \(item)")
}

編譯並執行上述代碼時,會產生以下結果 -

Value at index = 0 is Apple
Value at index = 1 is Amazon
Value at index = 2 is Google

添加兩個數組

可以使用加法運算符(+)添加兩個相同類型的數組,這將產生一個新數組,其中包含來自兩個數組的值的組合,如下所示 -

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB
for item in intsC {
   print(item)
}

編譯並執行上述代碼時,會產生以下結果 -

2
2
1
1
1

count屬性

使用數組的只讀count屬性來查找下麵顯示的數組中的專案數 -

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB

print("Total items in intsA = \(intsA.count)")
print("Total items in intsB = \(intsB.count)")
print("Total items in intsC = \(intsC.count)")

編譯並執行上述代碼時,會產生以下結果 -

Total items in intsA = 2
Total items in intsB = 3
Total items in intsC = 5

empty屬性

使用數組的只讀empty屬性來查明數組是否為空,如下所示 -

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)
var intsC = [Int]()

print("intsA.isEmpty = \(intsA.isEmpty)")
print("intsB.isEmpty = \(intsB.isEmpty)")
print("intsC.isEmpty = \(intsC.isEmpty)")

編譯並執行上述代碼時,會產生以下結果 -

intsA.isEmpty = false
intsB.isEmpty = false
intsC.isEmpty = true

上一篇: Swift字元 下一篇: Swif哈希集合