这一章主要学习swift的数组与字典
// 1 数组的概念和定义
var array=[2,3,4,5]//写法1
print(array)
var array2:Array=["a","b","c"]//写法2
print("array2:\(array2)")
var array3:Array<Int>=[4,5,6]//写法3
print("array3:\(array3)")
var array4:[Int]=[2,3,4,5]// 写法4 推荐写法
print("array4:\(array4)")
var array5=[];//空数组
swift 数组的元素可以是不同的任意类型
// 数组中可放置不同类型的数据
var array6=["a",1,"b",1]
print("array6:\(array6)")//array6:[a, 1, b, 1]
//任意类型的数组
var array7:Array<Any>=[1,14.5,"abc","d"]
print("array7:\(array7)")//array7:[1, 14.5, "abc", "d"]
数组的增加和插入
//数组的元素访问和在数组中插入或者增加元素
var array8=["a","b","c"]
print("array8[0]:\(array8[0])")
array8.append("d");
print("array8:\(array8)")//array8:["a", "b", "c", "d"]
array8.insert("inert", atIndex: 0)
print("array8:\(array8)")//array8:["inert", "a", "b", "c", "d"]
数组的修改和删除
//数组元素的修改和删除操作
var array9=[1,2,3,4,5]
array9[0]=9;
print("array9:\(array9)")
//删除数组元素
array9.removeLast();//删除最后一个元素
print("array9:\(array9)")
array9.removeAtIndex(0);//删除指定下标的元素
print("array9:\(array9)")
array9.removeAll();//删除所有
print("array9:\(array9.capacity)")//0 不保存容器的容量
var array9_1=[1,2]
array9_1.removeAll(keepCapacity: true)
print("array9:\(array9_1.capacity)")//2 保留了容器的容量
//Range String不符合range 是一个整形数
var range:Range<Int> = 1..<3;
print("range:\(range)")
var range2:Range<Int> = Range(start:1,end:3) //不包括3
print("range2:\(range2)")
swift 数组的批量操作
//批量更换
array10.replaceRange(Range(start:0,end:2), with: [1,1])//array10:[9, 9, 1, 4, 5]
print("array10:\(array10)")//array10:[1, 1, 1, 4, 5]
var array11=[1,2,3,4]
array11.replaceRange(1...3, with: [9,9,9])
print("array11:\(array11)")//array11:[1, 9, 9, 9]
array11+=[5,6,7];
print("array11:\(array11)")//array11:[1, 9, 9, 9, 5, 6, 7]
array11+=array11[1...2];
print("array11:\(array11)")//array11:[1, 9, 9, 9, 5, 6, 7, 9, 9]
swift 数组的遍历
//数组的遍历
var array12=[1,2,3,4,5]
for ele in array11
{
print("ele:\(ele)")
}
// 角标和值得遍历
for (index,value) in array12.enumerate(){
print("index:\(index);value:\(value)")
}
swift 字典定义
//字典的概念和定义(key:value)
// key一定是可hash的,String/Int/Float/Bool
var dic=["name":"张三","age":26]
print("dic:\(dic)")
var dic2=[:]
dic2=["name":"李四","age":25]
print("dic2:\(dic2)")
//特定类型的字典
var dic3:Dictionary<String,Int> = ["age":23]
//简写形式
var dic4:[String:Int] = ["age":78]
print("dic4:\(dic4)")
swfit字典的操作
//字典的操作
var dic5=["apple":"苹果","bug":"不够开放"]
print(dic5["apple"])//Optional("苹果")
//修改值
dic5["apple"]="梨子"
print("dic5:\(dic5)")//dic5:["apple": "梨子", "bug": "不够开放"]
var upValue=dic5.updateValue("苹果", forKey: "apple")//返回之前对应的key 的值
print("dic5:\(dic5)")//dic5:["apple": "苹果", "bug": "不够开放"]
print("upValue:\(upValue)");
var upValue2=dic5.updateValue("苹果2", forKey: "apple2")//如果key 不存在 更新失败 返回nil
print("upValue2:\(upValue2)");//nil
//删除
var delEle=dic5.removeValueForKey("bug")
print("delEle:\(delEle) dic5:\(dic5)")//delEle:Optional("不够开放") dic5:["apple": "苹果", "apple2": "苹果2"]
swift 字典遍历的三种方式
//字典的遍历
var dic6=["name":"张三","age":34];
for(key,value) in dic6
{
print("key:\(key) value:\(value)")
}
/*
key:age value:34
key:name value:张三
*/
//按key 遍历
for key in dic6.keys
{
print("key:\(key)")
}
/*
输出
key:age
key:name
*/
//按值遍历
for val in dic6.values
{
print("val:\(val)")
}
/*
输出
val:34
val:张三
*/