Swift基礎(chǔ)語法05-- 數(shù)組

前言

swift中的數(shù)組和OC中的數(shù)組大體上是一樣的,下面我們一一了解一下OC與swift中數(shù)組的區(qū)別.

數(shù)組.png
  • swift中的數(shù)組和OC中的數(shù)組之間的區(qū)別

    首先我們回顧一下OC中定義數(shù)組是怎么定義的
    NSArray *array = @["William", "Alex"];
    但是swift中定義數(shù)組和OC中定義數(shù)組就有點(diǎn)區(qū)別了,和定義常量或者變量一樣,都是用聲明符號來修飾的.
    定義數(shù)組時, 如果使用let就表示定義的是一個不可變的數(shù)組
    如果是使用var就表示定義的是一個可變的數(shù)組
    并且在swift中沒有@符號

// 定義一個數(shù)組,和OC的區(qū)別就是沒有@符號
let array1 = ["william", "Alex"]

// swift中的數(shù)組可以存儲任意類型(注意:在OC中只能存儲同種類型)
let array2 = ["William", "age", 18, 187.10]

一, 數(shù)組的定義

  • 先定義后初始化
 定義格式:
  方式一: 先定義后初始化(不推薦這種寫法)
 var arr1: Array<Int>
 arr1 = [10, 15, 100]
 let arr = [15, 12.5]
  • 在定義的同時初始化
 方式二: 在定義的同時初始化
 var arr2: [Int] = [15, 785, 45, 55]
  • 在定義的同時初始化,并且省略數(shù)組的類型標(biāo)注,直接使用類型推導(dǎo)(推薦寫法)
 方式三: 定義的同時初始化,并且類型有數(shù)組中的值推導(dǎo)出來,如果類型一致,那么數(shù)組就是該類型,如果數(shù)組中的元素不一致,那么數(shù)組的類型就是NSObject類型
 
 // Int類型
 let arr = [15, 12]
 
 // 數(shù)組類型為NSObject
 let arr = ["William", "Alex", 15, 12.5]
  • 遍歷數(shù)組和取值
// swift中的數(shù)組可以存儲任意類型(注意:在OC中只能存儲同種類型)
let array2 = ["William", "age", 18, 187.10]

// 取值(和OC一樣)
print(array2[2])

// 遍歷數(shù)組
for item in array2 {
print(item)
}

對數(shù)組進(jìn)行增(添加), 刪(刪除), 改(修改), 查(獲取)

  • 追加
// 向數(shù)組中追加數(shù)據(jù)(增或者刪 都是針對的是可變數(shù)組而言,所以需要用var修飾)
var array3 = ["William", "Alex"]
array3.append("J")
print(array3)
  • 增加數(shù)組的容量
// 增加數(shù)組的容量, 在當(dāng)前的容量乘以2
var array3 = ["William", "Alex"]

array3.append("Will")
array3.capacity
array3.append("wiiliam")
array3.capacity
array3.append("Alex")
array3.capacity
array3.append("C")
array3.capacity
array3.append("B")
array3.capacity
array3.append("A")
array3.capacity
array3.append("W")
array3.capacity

  • 刪除
// 刪除指定元素
array3.removeAtIndex(0)
array3

// 刪除第0個元素
array3.removeFirst()
array3

// 刪除最后一個元素
array3.removeLast()
array3

// 刪除所有元素
array3.removeAll()
array3

// 刪除所有, 如果傳人的ture,代表刪除之后需要保持?jǐn)?shù)組現(xiàn)有的容量, 如果傳人的是false,就表示不用保持當(dāng)前的容量
array3.capacity
array3.removeAll(keepCapacity: false)
array3.capacity
  • 修改
// 修改數(shù)組中的元素的值(和OC一樣直接通過索引來修改)
var array3 = ["William", "Alex", "A", "B", "C"]
array3[2] = "曾晶";
array3
var array3 = ["William", "Alex"]
array3.append("J")
print(array3)
  • 遍歷
// 在swift中可以指定范圍遍歷數(shù)組
for item in array3[0..<3] {
    print(item)
}
  • 合并

// 合并兩個數(shù)組(這里和OC有點(diǎn)區(qū)別,在swift中直接使用+既可以將兩個數(shù)組中的元素全部合并在一個數(shù)組中)
var arr2 = ["物流", "計(jì)算機(jī)", "電商"]
var arr3 = array3 + arr2
arr3


// 這里有個問題; arr3 是String類型, 而arr4是Int類型,這里報(bào)錯了,說明這兩個數(shù)組是不能合并的
// 原因: swift是一門強(qiáng)語言, 在不同類型之間是不能進(jìn)行運(yùn)算的,也就是說不能進(jìn)行合并

var arr6 = ["William", 18]
var arr7 = ["Alex"]
var arr8 = [15, 18, 15]

// NSObject 類型和String類型(合并報(bào)錯)
//arr6 += arr7
// Int 類型和String類型(合并報(bào)錯)
//arr6 += arr8
// NSObject 類型和int類型(合并報(bào)錯)
//arr7 += arr8
  • 指定范圍刪除元素
// 在swift中還能指定范圍刪除數(shù)組的元素
var arr9 = [0, 1, 2, 3, 4, 5]
arr9.removeRange(0..<2)  //刪除了0,1
arr9

var arr = [0, 1, 2, 3, 4, 5]
arr.removeRange(0...2)  //刪除了0,1
arr
  • 判斷數(shù)組是否為空
// 方式一: isEmpty
if shoppingList.isEmpty {
    print("The shopping list is empty.")
} else {
    print("The shopping list is not empty.")
}
 
// 或者通過count屬性
if shoppingList.count == 0 {
    print("The shopping list is empty.")
} else {
    print("The shopping list is not empty.")
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容