Swift-数组
来源:互联网 发布:正交矩阵一定是方阵吗 编辑:程序博客网 时间:2024/05/29 09:22
数组
数组使用有序列表存储同一类型的多个值。相同的值可以多次出现在一个数组的不同位置中。
- Swift中的Array类型被桥接到Foundation中的NSArray类。
数组的简单语法
写 Swift 数组应该遵循像Array这样的形式,其中Element是这个数组中唯一允许存在的数据类型。我们也可以使用像[Element]这样的简单语法。尽管两种形式在功能上是一样的,但是推荐较短的那种
创建一个空数组
使用构造方法创建一个由特殊数据类型构成的空数组:
var intArray = [Int]()//通过构造函数的类型, intArray的值类型被推断为[Int]
可以通过大括号将数组置空
//向数组中追加元素,此刻数组intArray中元素个数为0intArray.append(100)//此时数组intArray中元素个数为1 intArray = []//此刻intArray中数组为空,但由于开始初始化数组intArray为[Int]型的,虽然现在数组为空,但其仍为[Int]型数组。
创建一个数组(带默认值)
var threeInts = [Int](count: 5, repeatedValue: 100)print("threeInts is \(threeInts)")//output: [100, 100, 100, 100, 100]var threeIntsTwo = [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]//Swift会根据数组中的元素自动推断出数组的值类型 , 强制在数组中添加不同类型的元素显然是不合法的
通过两个数组相加创建一个数组
可以使用加法操作符(+)来组合两种已存在的相同类型的数组,所得出的新数组的数据类型会从两个相加的数组中推断出来。
var arrayOne = Array(count: 3, repeatedValue: 10)var arrayTwo = Array(count: 4, repeatedValue: 9)var arrayAdd = arrayOne + arrayTwo// arrayAdd : [10, 10, 10, 9, 9, 9, 9] 数据类型为Int // 如果将两个不同数据类型的数组相加 会报错
用字面量构造数组
可以使用字面量进行数组构造,字面量是一系列由逗号分隔并由方括号包含的数值:
[value1, value2, value3, value4......]
创建一个goodList的并存储String的数组:
var goodList : [String] = ["car", "toy"]//goodList已经被构造并且拥有两个初始项
goodList变量被声明为“字符串值类型的数组”,记作[String].因为这个数组被规定只有String一种数据结构,所以其中只能存储String类型。由Swift的推断机制,当用”car”和”toy”来初始化数组时,数组就被自动匹配成为字符串值类型的数组。所以,goodList数组也可以写成下面的形式,其结果和上面的一样:
var goodList = ["car", "toy"]
因为所有字面量中的值都是相同的类型,Swift可以推断出[String]是goodList中变量的正确类型。
访问和修改数组
- 获取数组元素的个数
var count = goodList.count
- 检测数组是否为空
if goodList.isEmpty{ print("The goodList is empty.")}else{ print("The goodList is not empty.")}
- 追加元素
goodList.append("pen")
- 使用加法赋值运算符(+=)可以直接在数组后面添加一个或多个拥有相同类型的数据项
goodList += ["ink", "ice"]
- 直接使用下标语法来获取数组中的数据项。
var firstItem = goodList[0]
- 通过下标修改已有索引值对应的数据值
goodList[2] = "pencil"
- 可以通过下标改变一系列的数据值,即使新数据和原有数据的数量是不一样的
//将goodList数组第一和第二个元素替换成“apple” 两个换成一个 后面的一次向前移动goodList[1...2] = ["apple"];//Tips:不可在数组的末尾执行此项操作
- 插入元素
goodList.insert("orange", atIndex: 0)
- 移除元素,在指定的位置
let temp = goodList.removeAtIndex(0)//直接移除最后一项let temp1 = goodList.removeLast()
- 排序
goodList.sort { (let str1, let str2) -> Bool in return str1 < str2}goodList.sortInPlace { (let str1, let str2) -> Bool in return str1 < str2}
数组的遍历
- 使用for-in循环来遍历所有数组中的数据项
for item in goodList{ print(item)}
- 如果同时需要使用每个数据项和索引值,可以使用enumerate()方法来进行数组遍历。enumerate()返回一个由每一个数据项索引值和数据值组成的元组。可以把这个元组分解成为临时常量或者变量进行遍历。
for (index, value) in goodList.enumerate(){ print("item --> \(item) , value --> \(value)")}
0 0
- 【Swift初见】Swift数组
- Swift数组
- [Swift]数组
- Swift-数组
- Swift 数组
- swift数组
- swift数组
- Swift-数组
- Swift数组
- Swift 数组
- Swift 数组
- Swift 数组
- Swift数组
- Swift-数组
- Swift-数组
- swift-数组
- swift 数组
- swift数组
- 同样遇到PHP 连接SQL2008 查询出现中文乱码问题
- LeetCode Jump Game II
- CentOS 下载地址
- 原生js和jquery实现图片轮播特效
- Linux养成计划: vi编辑器
- Swift-数组
- CSS常用选择器学习
- 代码要为现实服务
- 移动web应用开发——Sencha Touch篇(1)
- Swift-元组(Tuple)
- 请问串口通讯的奇偶校验
- 利用default.xml回退代码
- 占位3
- 占位i4