一、说明
Swift数组中的类型必须一致,这一点与OC不同
// 数组初始化 var numbers = [0,1,2,3,4,5] var vowels = ["A","E","I","O","U"] // 数组的类型: [Int] 或者 Array<Int> //var numbers: [Int] = [0,1,2,3,4,5] //var numbers: Array<Int> = [0,1,2,3,4,5] // 空数组 var emptyArray1:[Int] = [] var emptyArray2:Array<Int> = [] var emptyArray3 = [Int]() var emptyArray4 = Array<Int>() // 创建具有默认值的数组(相同元素的数组) 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]() // 数组长度 vowels.count // 判空 numbers.isEmpty emptyArray.isEmpty // 获取元素 vowels[2] // 数组越界是一个严重的错误 //vowels[-1] //vowels[5] // 获取第一个元素和最后一个元素,返回的是可选型 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(){ //遍历数组索引和元素 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之前数组是有序的数据集合,swift 3.0后为无序
三、更多操作
var courses = ["A","B","C"] // 添加元素 courses.append("D") //["A","B","C","D"] print(courses) // 数组常量 //使用let定义的数组不可以更改任何内容 courses += ["E"] //+=后面必须和前面的类型一致 //["A","B","C","D","E"] print(courses) // 两个数组相加 courses = courses + ["F","G"] //+后面必须是数组 //["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) //区间删除操作 //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)
四、二维数组
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] ] // 二维数组获取元素 board[0] board[0][0] // 获取二维数组两个维度的信息 board.count board[0].count // Swift中的二维数组,每一维度的元素数目可以不同 board[0].append(0) board // 为二维数组的第一个维度添加的元素是一个数组 board.append([0,0,0,0]) board += [ [0,0,0,0] ] board
五、NSArray
NSArray是一个类,Array是一个结构体
var array1 = [] //会默认是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]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍详细解读MySQL中COUNT函数的用法,包括了详细解读MySQL中COUNT函数的用法的使用技巧和注意事项,需要的朋友参考一下 MySQL的COUNT函数是最简单的功能,非常有用的计算,预计由一个SELECT语句返回的记录数。 要了解COUNT函数考虑的EMPLOYEE_TBL的的表具有以下记录: 现在根据上面的表,要算在此表中的行数,那么可以做如下的假设: 同样地,想数一数的话就
本文向大家介绍详细解读Python中解析XML数据的方法,包括了详细解读Python中解析XML数据的方法的使用技巧和注意事项,需要的朋友参考一下 Python可以使用 xml.etree.ElementTree 模块从简单的XML文档中提取数据。 为了演示,假设你想解析Planet Python上的RSS源。下面是相应的代码: 运行上面的代码,输出结果类似这样: 很显然,如果你想做进一步的处理,
本文向大家介绍超详细的javascript数组方法汇总,包括了超详细的javascript数组方法汇总的使用技巧和注意事项,需要的朋友参考一下 一、数组的常用方法 1:join(); 将数组转为字符串显示。不输入参数,默认以逗号连接;输入参数,则以参数连接。 原数组不变。 2:reverse(); 将数组逆序排列,原数组被修改。 3:sort(); 默认按升序排列数组项,调用每个数组项的toStr
本文向大家介绍php strftime函数的详细用法,包括了php strftime函数的详细用法的使用技巧和注意事项,需要的朋友参考一下 定义和用法 strftime() 函数根据区域设置格式化本地时间/日期。 语法 strftime(format,timestamp)参数 描述 format 可选。规定如何返回结果。 timestamp 可选。 提示和注释 提示:与 gmstrftime()
本文向大家介绍Java 数组ArrayList常用语法详解,包括了Java 数组ArrayList常用语法详解的使用技巧和注意事项,需要的朋友参考一下 恶补基础,记录一下数组ArrayList的常用语法 1.导入 2.定义数组list ArrayList<类名> list = new ArrayList<类名>(); 不能是基本类型,必须是类 3.获取集合大小 size() 4.存入数据 add(
本文向大家介绍Java hashCode() 方法详细解读,包括了Java hashCode() 方法详细解读的使用技巧和注意事项,需要的朋友参考一下 1.WHY hashCode()? 集合Set中的元素是无序不可重复的,那判断两个元素是否重复的依据是什么呢? “比较对象是否相等当然用Object.equal()了”,某猿如是说。但是,Set中存在大量对象,后添加到集合Set中的对象元素比较次数