Object-C--->Swift之(五)数组和字典
2016-01-15 18:14
330 查看
数组
Swift的数组继承了C、Object-C的功能,目前并没有独特的新功能的添加。声明数组
泛型语法
[code] Array<类型> var myArray:Array<Int>
简化语法
[类型]var myArray:Array[Int]
创建数组结构体,并将数组赋值
使用Array的构造器创建数组。
[code]myArray=Array<Int>() myArray=Array<Int>(count: 100, repeatedValue: 0)
使用简化语法创建数组。
[code]var myArra:[Int]=[1,2,4,5] myArray=[1,2,4,5]
获取数组值
[code] 直接获取 print(myArray[1]) 通过for语句访问 for var i=0;i < myArra.count;i++ { print(myArra[i]) } 通过for-in遍历数组 for myArr in myArray { print(myArr) }
如果我们前面申请的是可变变量,则数组可以进行修改
添加元素
[code] myArray.append(6) myArray+=[7]
插入元素(注意插入元素不能超过数组长度,否则会崩溃的)
[code]myArray.insert(3, atIndex: 2)
删除数组
[code] myArray.removeAtIndex(2)//删除下标为2的元素 myArray.removeLast()//删除最后一个元素 myArray.removeRange(1...3)//删除第一个下标到第三个下标的元素 myArray.removeAll()//删除全部元素
数组和范围包相结合
[code] print(myArray[1...3]) 获取下标1到3位置的数据
数组内部复制机制
在Swift中数组是值类型的,值类型赋值或传递过程中会复制副本,进行赋值或传递参数,只是原来数据的副本。[code] 例如: var names=["张三","李四","王麻子"]; var copy=names; copy[1]="李鬼" print(names) print(copy) 输出: ["张三", "李四", "王麻子"] ["张三", "李鬼", "王麻子"]
字典
字典类型与Object-C相比操作上没有太大的变化,依旧是具有映射关系的数据类型,key和value组成了一个键值对,一对一的关系,可以为任意类型,但字典中的数据是无序存储的,它整合了Object-C里面NSSet的功能。声明字典
泛型语法
[code] Dictionary<key 类型,value 类型> var celebrity :Dictionary<String,String>
简化语法
[code] [key 类型:value 类型] var celebrity:[String:String]
创建字典结构体,并将字典赋值
使用Dictionary的构造器创建数组。
[code] celebrity:Dictionary<String,String>()
使用简化语法创建字典
[code] var celebrity=["丘吉尔":"英国","毛泽东":"中国大陆","马英九":"中国台湾","乔布斯":"美国"];
获取字典值
直接获取
[code]print(celebrity["丘吉尔"])//输出 Optional("英国") let coun: String? = celebrity["丘吉尔"] if coun != nil { print("\(coun!)") //输出 英国 }
如果我们前面申请的是可变变量,则字典可以进行修改
添加键值对
[code]celebrity.updateValue("中国", forKey: "博主")
修改键值对
[code] celebrity["丘吉尔"]="中国"
删除键值对
删除指定的:[code]celebrity.removeValueForKey("博主")
删除全部的:
[code]celebrity.removeAll()
字典内部复制机制
[code] 在Swift中字典同数组一样都是值类型的,值类型赋值或传递过程中会复制副本,进行赋值或传递参数,只是原来数据的副本。
相关文章推荐
- Objective-C是动态运行时语言的个人理解
- hibernate class cast exception from object to ...
- Java提高学习之Object(2)
- Java提高学习之Object类详解(1)
- Java Object...可变长度的参数(Varargs)详解
- Objective-C属性特性
- Objective-C KVC和KVO的使用
- Swift 懒加载(lazy) 和 Objective-C 懒加载的区别
- 浅谈Scala 2.8的包对象(package object)
- Object-C--->Swift之(四)强大的Switch
- xjc-beyond sliding windows-Object Localization by Efficient Subwindow Search 论文的算法和知识点
- json字符串转换为JSONObject和JSONArray
- Qt QObject
- 在Swift中,如何像Objective-C定义可选接口?
- Objective-C中使用不定参数个数的方法调用
- FLASH动画-- SWFObject
- Objective-c学习日总结之与C的区别及类与对象的定义,类的声明及调用方法
- Swift语言调用Objective-c
- Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(十一)之Holding Your Objects
- PHP“Cannot use object of type stdClass as array”