swift 学习记录(集合---数组)
来源:互联网 发布:海康网络键盘 编辑:程序博客网 时间:2024/06/08 12:21
swift 提供了两种集合类型 : 数组 和 字典 ,用于存储值的集合。
本章内容只记录 数组,字典将在下一章中记录
数组
有序列表,存储多个可重复的相同数据类型的数据。
数组存储的数据值的类型必须是明确的,通过显式类型注释,或通过类型推断来保证,而且没必要非是 class 类型。例如: 如果创建一个 Int 类型的数组,就不能向其中加入不是Int类型的任何数据。
简单语法
Swift 数组语法形式:Array<SomeType>,或者简写为 SomeType[] 。其中 SomeType 表示数组存储的数据类型。 两种形式在功能上是一样的,但是推荐使用 SomeType[] 种写法。
var shoppingList: [String] = ["Eggs", "Milk"]var numLis:Array<Int> = [10,30,100]
取值
直接通过元素下标取值,元素的下标从 0 开始
var shoppingList: [String] = ["Eggs","Bananas","Apples"]var firstItem = shoppingList[0]print("fistItem is \(firstItem)")//fistItem is Eggs
count属性
使用count 属性来获取 数组中元素的数量
var count = shoppingList.countprint("count is \(count)")//count is 2
isEmpty属性
使用 isEmpty 属性来判断数组是否为空
var shoppingList: [String] = [ ]if shoppingList.isEmpty{ print("shoppingList is empty")}else{ print("shoppingList is not empty")}//shoppingList is empty追加元素
1,使用 append 在数组末尾追加元素
var shoppingList: [String] = ["Eggs","Bananas","Apples"]shoppingList.append("Flour")
print("shoppingList is \(shoppingList)")//shoppingList is ["Eggs", "Bananas", "Apples", "Flour"]2,使用加法赋值运算符(+=) 在数组末尾追加元素
var shoppingList: [String] = ["Eggs","Bananas","Apples"]shoppingList.append("Flour")shoppingList += ["Beer"]print("shoppingList is \(shoppingList)")//shoppingList is ["Eggs", "Bananas", "Apples", "Flour", "Beer"]这里的 += 操作 ,在教程中看到的是 后面直接是个 字符串,但在代码中出现编译错误。于是,我将字符串改为数组,得到了正确的结果。这不知道是不是 swift2.0 之后改变了的原因。
3,使用 数组的 insert (atIndex:) 方法在 atIndex 之前添加元素
var shoppingList: [String] = ["Eggs", "Bananas", "Apples", "Flour", "Beer"]shoppingList.insert("redwine", atIndex: 2)print("shoppingList is \(shoppingList)")//shoppingList is ["Eggs", "Bananas", "redwine", "Apples", "Flour", "Beer"]
元素修改
1,通过下标修改数组元素
var shoppingList: [String] = ["Eggs", "Bananas", "Apples", "Flour", "Beer"]shoppingList[0] = "rice" //将第一个元素修改为riceprint("shoppingList is \(shoppingList)")//shoppingList is ["rice", "Bananas", "Apples", "Flour", "Beer"]
2,通过下标区间,批量修改数组中的元素
var shoppingList: [String] = ["Eggs", "Bananas", "Apples", "Flour", "Beer"]shoppingList[0...3] = ["rice","noodle","meat","milk"] //将数组中的第1,2,3,4个元素改变print("shoppingList is \(shoppingList)")//shoppingList is ["rice", "noodle", "meat", "milk", "Beer"]
元素删除
1,使用 removeAtIndex 方法来移除数组中的某一项。这个方法把数组在索引位置存储的元素移除,并返回这个被移除的元素(如果不需要可以无视它)
var shoppingList: [String] = ["Eggs", "Bananas", "Apples", "Flour", "Beer"]var mapleSyrup = shoppingList.removeAtIndex(3) //将数组中的第 4 个元素移除print("shoppingList is \(shoppingList) , \(mapleSyrup) been removed")//shoppingList is ["Eggs", "Bananas", "Apples", "Beer"] , Flour been removed
2,使用 removeFirst()(移除第一个元素) 、removeLast()(移除最后一个元素)
var shoppingList: [String] = ["Eggs", "Bananas", "Apples", "Flour", "Beer"]var first = shoppingList.removeFirst() //移除第一个元素var last = shoppingList.removeLast() //移除最后一个元素print("shoppingList is \(shoppingList) , \(first) and \(last) been removed")//shoppingList is ["Bananas", "Apples", "Flour"] , Eggs and Beer been <span style="font-family: STHeiti;">removed</span>3, 使用 removeAll(),移除所有元素
var shoppingList: [String] = ["Eggs", "Bananas", "Apples", "Flour", "Beer"]shoppingList.removeAll()print("shoppingList is \(shoppingList) ")//shoppingList is []
数组的遍历
1,使用 for-in 遍历数组中的所有元素
var shoppingList: [String] = ["Eggs", "Bananas", "Apples", "Flour", "Beer"]for item in shoppingList{ print(item)}//Eggs//Bananas//Apples//Flour//Beer2,如果同时需要每个元素的值和索引值,可以使用函enumerate()函数 来进行数组遍历。enumerate()返回一个由元素索引值和数据值组成的键值对。我们可以把这个键值对分解成临时常量或者变量来进行遍历:
var shoppingList: [String] = ["Eggs", "Bananas", "Apples", "Flour", "Beer"]for (index, value) in shoppingList.enumerate() { print("index is \(index) and value is \(value)")}//index is 0 and value is Eggs//index is 1 and value is Bananas//index is 2 and value is Apples//index is 3 and value is Flour//index is 4 and value is Beer
0 0
- swift 学习记录(集合---数组)
- swift学习记录03-集合:数组、字典
- swift学习记录(集合---字典)
- Swift学习笔记第三篇(字符串,数组,集合,字典)
- swift基础学习(03)[数组、集合、字典]
- 《从零开始学Swift》学习笔记(Day 17)——Swift中数组集合
- 《从零开始学Swift》学习笔记(Day 17)——Swift中数组集合
- Swift集合类型(数组和字典)
- Swift集合类型(数组和字典)
- swift学习记录(开端)
- swift学习记录(Optional)
- swift学习记录(switch)
- swift学习记录(for)
- swift学习记录(func)
- 操作 swift学习记录(-)
- swift学习记录(selector)
- swift学习记录(in)
- swift 学习记录(一)
- 使用 Spring AOP控制Controller输出
- xcode7、iOS9 设置启动图片(Launch Image)
- android-view animation
- 关于网络层的封装的一点想法
- Android X轴Y轴Z轴旋转
- swift 学习记录(集合---数组)
- Android 加载网络图片并下载至本地SdCard
- 蓝桥网 算法提高 快乐司机
- mac 存数据库乱码
- 【致敬那些为IT事业贡献自己心血的人】
- PSF 点扩散函数
- Siege 一个用于Http, 但不能用于Https的负载测试工具 我操。。。。
- js拖动table行tr排序
- 排序算法test