一.数组
1.初始化,和oc一样用【】定义数组,但是@
int型,string型,any型
var intArray = [Int]()
var stringArray = [String]();
var anyArray = [Any]();
func demo() {
//和oc一样【】定义数组 ,但是没有@
//自动推到数组中存放的类型
let array = ["老三","老师","大哥"]
print(array);
//oc中基本类型需要包装 这里不需要
let array2 = [1,2,34,4]
print(array2)
//混合数组:开发中基本不用
//类型不一致,自动推导为nsobject
//在swift中海油一种类型【AnyObject】 - 任意对象
let p = CGPoint(x:1,y:2);
let arry3 = ["掌声",1,p] as [Any]
print(arry3)
}
//数组的遍历
func demo2(){
let array = ["老三","老师","大哥"]
//下标遍历
for i in 0..<array.count{
print(array[i])
}
//元素遍历
for s in array {
print(s)
}
//enum block遍历 同时取下标和内容
for e in array.enumerated() {
//e 为元组
print(e)
print("\(e.offset)\(e.element)")
}
//遍历下标和内容 n 为下标,s为对于元素
for (n,s) in array.enumerated() {
print("\(n)\(s)")
}
//反序遍历
for s in array.reversed() {
print(s)
}
//反序索引 下标和内容
for (n,s) in array.enumerated().reversed() {
print("\(n)\(s)")
}
}
//MARK: 数组的增 删 改 合并
func demo3(){
var array = ["老三","老师","大哥"] as [Any]
//增
array.append("老王")
print(array)
//修改 通过下标定位
array[0] = "小王"
//删除
array.remove(at: 0)
//删除全部保留空间
array.removeAll(keepingCapacity: true)
print("现在数组的容量\(array.capacity)")
//合并 (要合并的数组类型必须一直)
var array2 = ["要死","sb",15] as [Any]
array2 += array
print(array2)
}
二、dictionary字典
var mainDict:[String:Any] = ["name":"老王","age":12]
var mainDict2:[String:Any] = ["name":"老贺","age":25]
override func viewDidLoad() {
super.viewDidLoad()
demo()
demo2()
demo3()
demo4()
}
//定义
func demo(){
//oc使用{},swift使用[]
//let dict: [String : Any]
let dict = ["name":"老王","age":"12"]
print(dict);
let dict2:[[String:Any]] = [["name":"老王","age":12],["name":"老李","age":18]]
print(dict2);
}
//增 删 改
func demo2(){
var dict:[String:Any] = ["name":"老王","age":12]
//增
dict["height"] = 56
//修改
dict["name"] = "老李"
//删除
dict.removeValue(forKey: "age")
}
//遍历
func demo3(){
//element为元组
for element in mainDict{
print("\(element.key)\(element.value)")
}
for (key,value) in mainDict {
print("\(key)\(value)")
}
}
//合并 不能像array那样相加
//遍历依次添加合并
func demo4(){
for element in mainDict2 {
mainDict[element.key] = mainDict2[element.key]
print(mainDict)
}
}