Swift 数组和字典
2015-06-20 21:19
417 查看
数组: 中括号[ ] 表示,数组值之间用逗号分隔
1、如果数组声明为常量,则本身不能修改,且数组中的值也不能修改
2、指定数组的类型,语法:Array<Type> 可以简写为 [Type]
var typeArray1: [String]
var typeArray1: Array<Int> = [1, 2, 3]
3、如果声明了数组,但是没有初始化该数组,是不能被引用的
var typeArray1: [String]
println(typeArray1) 出错!!
4、当检测到数组中元素类型相同时,则为 Swift 类型数组
当 数组中元素类型 不相同时,则为 OC 的 NSArray 数组,
如果想变为NSMutableArray 则要显式的声明 : var myArray: NSMutableArray = [1, 2, “xyz"]
var typeArray3: Array<Int> = [1, 3, “xyz”] 则是错误的,最后一个元素 不是整形
5、var nullArray = [] 创建的是 NSArray 的数组类型,因为Swift 编译器不能推导数组的类型
6、创建 Swift 的 空数组
var nullArray1 = [Int]()
var nullArray2: Array<Float> = []
var nullArray3: [String] = []
7、创建 初始化长度为 4 的 Int 类型的数组,且这四个元素都初始化为 2
var fourInts = [Int](count: 4, repeatedValue: 2)
8、数组相加即为 合并数组
9、数组区间赋值 : 可以同时对多个数组元素进行赋值
1)区间范围和 右侧赋值元素个数不同,元素多则插入,,,区间大则去除多余区间,,,
2)var arrayName[min..<max] = [item1, item2, item3]
max 和 min 超过了数组的上下边界,则直接抛出异常
10、append、 insert、remoteAll 没有返回值
removeLast 、 removeAtIndex 有返回值,返回移除的值
empty 判断时候为空 count 计算元素个数
11、可以用复合加法赋值 += 来追加 数组的元素
12、枚举数组中的元素
1) for…in 用变量 或者 下标都行
2) for (index, value) in enumerate(fourInts){}
字典:使用中括号[ ] , key—value 之间用逗号隔开, key: value 的形式
1、如果字典中的 key 和 value 不是 String 类型,就不需要用双引号括起来
2、var employ1: Dictionary<String, String> = [“name”: “bill”, “price”: “345"]
var employ2: [String: String] ] = [“name”: “bill”, “price”: “345"]
var employ3 = [“name”: “bill”, “price”: “345"]
3、类型不同则为OC 类型NSDictonary , 若要NSMutableDictonary 则显式声明
4、如果 let 声明,不仅意味着不能修噶字典本身,其字典中的值也不能修改
5、var nullDict1 = Dictionary<Int, String>()
var nullDict2 = [Int: String]()
6、dict[key] = value 有原来的 key 则 修改,没有则添加
7、updateValue方法返回修改前的值
dict[key] = nil 删除 key—value
removeValueForKey 指定要删除数据的 key, 并且返回待删除数据 的 value
8、 var dict1 = ["key1": "20", "key2": "abd"]
// String 转换为 Int类型,转换时需要使用可选类型变量
var value1:Int? = dict1["key1"]?.toInt()
var dict2 = ["key1": "20", "key2": 123]
// Int 类型的 NSObject 类型值转换为 Int 类型, 不需要可选类型而是要 加上 !
var value2:Int = dict2["key2"] as! Int
// String 类型 NSObject 类型 值 转换为 Int 类型,需要可选类型
var value3:Int? = (dict2["key1"] as? String)?.toInt()
9、for (key, value) in dict{}
for key in dict.keys{} keys、values 属性
当字典类型变为 NSDictonary,可以先将其转换为 Dictionary,然后再使用keys 和 values属性获取相应的key 和 value
10、将keys 和 values转换为 数组
var dict = [“key1”: “val1”, “key2”: “val2"]
let keys = Array(dict.keys)
1、如果数组声明为常量,则本身不能修改,且数组中的值也不能修改
2、指定数组的类型,语法:Array<Type> 可以简写为 [Type]
var typeArray1: [String]
var typeArray1: Array<Int> = [1, 2, 3]
3、如果声明了数组,但是没有初始化该数组,是不能被引用的
var typeArray1: [String]
println(typeArray1) 出错!!
4、当检测到数组中元素类型相同时,则为 Swift 类型数组
当 数组中元素类型 不相同时,则为 OC 的 NSArray 数组,
如果想变为NSMutableArray 则要显式的声明 : var myArray: NSMutableArray = [1, 2, “xyz"]
var typeArray3: Array<Int> = [1, 3, “xyz”] 则是错误的,最后一个元素 不是整形
5、var nullArray = [] 创建的是 NSArray 的数组类型,因为Swift 编译器不能推导数组的类型
6、创建 Swift 的 空数组
var nullArray1 = [Int]()
var nullArray2: Array<Float> = []
var nullArray3: [String] = []
7、创建 初始化长度为 4 的 Int 类型的数组,且这四个元素都初始化为 2
var fourInts = [Int](count: 4, repeatedValue: 2)
8、数组相加即为 合并数组
9、数组区间赋值 : 可以同时对多个数组元素进行赋值
1)区间范围和 右侧赋值元素个数不同,元素多则插入,,,区间大则去除多余区间,,,
2)var arrayName[min..<max] = [item1, item2, item3]
max 和 min 超过了数组的上下边界,则直接抛出异常
10、append、 insert、remoteAll 没有返回值
removeLast 、 removeAtIndex 有返回值,返回移除的值
empty 判断时候为空 count 计算元素个数
11、可以用复合加法赋值 += 来追加 数组的元素
12、枚举数组中的元素
1) for…in 用变量 或者 下标都行
2) for (index, value) in enumerate(fourInts){}
字典:使用中括号[ ] , key—value 之间用逗号隔开, key: value 的形式
1、如果字典中的 key 和 value 不是 String 类型,就不需要用双引号括起来
2、var employ1: Dictionary<String, String> = [“name”: “bill”, “price”: “345"]
var employ2: [String: String] ] = [“name”: “bill”, “price”: “345"]
var employ3 = [“name”: “bill”, “price”: “345"]
3、类型不同则为OC 类型NSDictonary , 若要NSMutableDictonary 则显式声明
4、如果 let 声明,不仅意味着不能修噶字典本身,其字典中的值也不能修改
5、var nullDict1 = Dictionary<Int, String>()
var nullDict2 = [Int: String]()
6、dict[key] = value 有原来的 key 则 修改,没有则添加
7、updateValue方法返回修改前的值
dict[key] = nil 删除 key—value
removeValueForKey 指定要删除数据的 key, 并且返回待删除数据 的 value
8、 var dict1 = ["key1": "20", "key2": "abd"]
// String 转换为 Int类型,转换时需要使用可选类型变量
var value1:Int? = dict1["key1"]?.toInt()
var dict2 = ["key1": "20", "key2": 123]
// Int 类型的 NSObject 类型值转换为 Int 类型, 不需要可选类型而是要 加上 !
var value2:Int = dict2["key2"] as! Int
// String 类型 NSObject 类型 值 转换为 Int 类型,需要可选类型
var value3:Int? = (dict2["key1"] as? String)?.toInt()
9、for (key, value) in dict{}
for key in dict.keys{} keys、values 属性
当字典类型变为 NSDictonary,可以先将其转换为 Dictionary,然后再使用keys 和 values属性获取相应的key 和 value
10、将keys 和 values转换为 数组
var dict = [“key1”: “val1”, “key2”: “val2"]
let keys = Array(dict.keys)
相关文章推荐
- 【swift总结】基本的操作运行符
- Swift之旅:2.完成计算器,初探MVC设计模式
- 【swift-总结】基础使用
- swift学习 一 基础部分 (上)
- Swift 基础
- SQLite.swift Documentation
- 【Swift】- UITextField完成输入后关闭软键盘的几种方法
- Swift2学习:欢迎来到Swift世界
- Swift学习笔记系列——(1)操作符
- Swift语言IOS8开发战记27 Sketch初探
- Swift 读取系统图片以及改变图片 圆形 UIImagePickerController
- swift文件上传及表单提交
- swift 单例的几种形式
- swift 写的app 源码,保存一下下
- 【swift_3】swift之UITableView和UINavigation视图控制器
- swift之switch介绍
- swift 之?和!
- Swift语言IOS8开发战记26 NSURLSession加载数据、上传下载
- Swift语言学习之OC和Swift混编
- OpenStack之swift安装笔记