Swift數(shù)組詳細(xì)用法解析
一、說明
Swift數(shù)組中的類型必須一致,這一點(diǎn)與OC不同
// 數(shù)組初始化 var numbers = [0,1,2,3,4,5] var vowels = ["A","E","I","O","U"] // 數(shù)組的類型: [Int] 或者 Array<Int> //var numbers: [Int] = [0,1,2,3,4,5] //var numbers: Array<Int> = [0,1,2,3,4,5] // 空數(shù)組 var emptyArray1:[Int] = [] var emptyArray2:Array<Int> = [] var emptyArray3 = [Int]() var emptyArray4 = Array<Int>() // 創(chuàng)建具有默認(rèn)值的數(shù)組(相同元素的數(shù)組) var allZeros = Array<Int>(repeating: 0, count: 5) //[0,0,0,0,0] var allZeros2 = [Int](repeating: 0, count: 5) //[0,0,0,0,0]
二、常用方法
var numbers = [1,2,3,4,5]
var vowels = ["A","E","I","O","U"]
var emptyArray = [Int]()
// 數(shù)組長(zhǎng)度
vowels.count
// 判空
numbers.isEmpty
emptyArray.isEmpty
// 獲取元素
vowels[2]
// 數(shù)組越界是一個(gè)嚴(yán)重的錯(cuò)誤
//vowels[-1]
//vowels[5]
// 獲取第一個(gè)元素和最后一個(gè)元素,返回的是可選型
vowels.first
vowels.last //.first和.last的返回值都為可選型
emptyArray.first
if let firstVowel = vowels.first{
print("The first vowel is " + firstVowel)
}
vowels.first!
vowels[vowels.count-1]
// 獲取最小,最大值
numbers.min() //1
vowels.max() //U
// 使用范圍
numbers[2..<4] //[3,4]
numbers[2..<numbers.count] //[3,4,5]
// 包含
vowels.contains("A")
vowels.contains("B")
let letter = "A"
if vowels.contains( letter ){
print("\(letter) is a vowel")
}
else{
print("\(letter) is not a vowel")
}
vowels.index(of: "E") //獲取索引,返回值為可選型
if let index = vowels.index(of: "E"){
print("E is a vowel in position \(index+1).")
}
else{
print("E is not a vowel.")
}
// 遍歷
for index in 0..<numbers.count{
numbers[index]
}
for number in numbers{
print(number)
}
for (index, vowel) in vowels.enumerated(){
//遍歷數(shù)組索引和元素
print("\(index+1): \(vowel)")
}
// 比較
var oneToFive = [1,2,3,4,5]
numbers == oneToFive //true
var oneToFive2 = [1,2,4,3,5]
numbers == oneToFive //true
//swift 3.0之前數(shù)組是有序的數(shù)據(jù)集合,swift 3.0后為無序
三、更多操作
var courses = ["A","B","C"]
// 添加元素
courses.append("D") //["A","B","C","D"]
print(courses)
// 數(shù)組常量
//使用let定義的數(shù)組不可以更改任何內(nèi)容
courses += ["E"] //+=后面必須和前面的類型一致 //["A","B","C","D","E"]
print(courses)
// 兩個(gè)數(shù)組相加
courses = courses + ["F","G"] //+后面必須是數(shù)組
//["A","B","C","D","E","F","G"]
print(courses)
courses.insert("Q", at: 5)
//["A", "B", "C", "D", "E", "Q", "F", "G"]
print(courses)
// 刪除元素
courses.removeLast()
//["A", "B", "C", "D", "E", "Q", "F"]
print(courses)
courses.removeFirst()
//["B", "C", "D", "E", "Q", "F"]
print(courses)
courses.remove(at: 4)
//["B", "C", "D", "E", "F"]
//courses.removeAtIndex(10)
print(courses)
//區(qū)間刪除操作
//courses.removeRange(0..<4)
//courses.removeRange(0..<10)
//print(courses)
//courses.removeAll()
//print(courses)
// 修改元素
courses[0] = "W"
//["W", "C", "D", "E", "F"]
print(courses)
//范圍修改
courses[1...3] = ["W","W","W"]
//["W", "W", "W", "W", "F"]
print(courses)
courses[0...3] = ["W"]
//["W", "F"]
print(courses)
四、二維數(shù)組
var board = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ] //var board:[[Int]] = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ] //var board:[Array<Int>] = = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ] //var board:Array<[Int]> = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ] //var board:Array<Array<Int>> = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ] // 二維數(shù)組獲取元素 board[0] board[0][0] // 獲取二維數(shù)組兩個(gè)維度的信息 board.count board[0].count // Swift中的二維數(shù)組,每一維度的元素?cái)?shù)目可以不同 board[0].append(0) board // 為二維數(shù)組的第一個(gè)維度添加的元素是一個(gè)數(shù)組 board.append([0,0,0,0]) board += [ [0,0,0,0] ] board
五、NSArray
NSArray是一個(gè)類,Array是一個(gè)結(jié)構(gòu)體
var array1 = [] //會(huì)默認(rèn)是NSArray,swift3.0之后該寫法廢除 var array2 = [1,2,3,4,5] as NSArray var array3: NSArray = [1,"hello"] var array4: [NSObject] = [1 as NSObject,"hello" as NSObject]
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
swift中c風(fēng)格的for循環(huán)執(zhí)行效率
這篇文章主要介紹了swift中c風(fēng)格的for循環(huán)執(zhí)行效率 的相關(guān)資料,需要的朋友可以參考下2016-07-07
Swift算法實(shí)現(xiàn)字符串轉(zhuǎn)數(shù)字的方法示例
最近學(xué)完了swift想著實(shí)踐下,就通過一些簡(jiǎn)單的算法進(jìn)行學(xué)習(xí)研究,下面這篇文章主要介紹了Swift算法實(shí)現(xiàn)字符串轉(zhuǎn)數(shù)字的方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03
Spring中BeanFactory與FactoryBean的區(qū)別解讀
這篇文章主要介紹了Spring中BeanFactory與FactoryBean的區(qū)別解讀,Java的BeanFactory是Spring框架中的一個(gè)接口,它是用來管理和創(chuàng)建對(duì)象的工廠接口,在Spring中,我們可以定義多個(gè)BeanFactory來管理不同的組件,需要的朋友可以參考下2023-12-12
通過Notification.Name看Swift是如何優(yōu)雅的解決String硬編碼
這篇文章主要給大家介紹了通過Notification.Name看Swift是如何優(yōu)雅的解決String硬編碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
Swift開發(fā)應(yīng)用中如何更方便地使用顏色詳解
這篇文章主要給大家介紹了關(guān)于Swift開發(fā)應(yīng)用中如何更方便地使用顏色的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03
Swift實(shí)現(xiàn)“或”操作符的3種方法示例
這篇文章主要給大家介紹了關(guān)于Swift實(shí)現(xiàn)“或”操作符的3種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
openstack重啟swift服務(wù)后報(bào)錯(cuò)問題解決方案
這篇文章主要介紹了解決openstack重啟swift服務(wù)后報(bào)錯(cuò),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08

