五.swift - 数组和字典

来源:互联网 发布:python 直方图 编辑:程序博客网 时间:2024/05/07 19:52
集合
1. 数组
1.数组是用 []
2. let用于声明不可变数组;var就是可变
3.指定了数组类型之后,不能添加其他类型的数组
4.通过 let 变量名 = [类型]()实现数组的初始化
5.  protocol AnyObjectswift中的基类
    NSObjectOC中的基类
6.  数组的合并: 
  • 要是类型相同:letsumArray = array + array2
  • 要是类型不同:遍历,具体见下面的代码
//: [Int]
let numbers = [12345678910]
  • 遍历
for num in numbers {
    print(num)
}
  • 通过下标获取指定项内容
let num1 = numbers[0]
let num2 = numbers[1]
  • 可变&不可变
    • let 定义不可变数组
    • var 定义可变数组
let array = ["zhangsan""lisi"]
//: 不能向不可变数组中追加内容
//array.append("wangwu")
var array1 = ["zhangsan""lisi"]

//: 向可变数组中追加内容
array1.append("wangwu")
  • 数组的类型
    • 如果初始化时,所有内容类型一致,择数组中保存的是该类型的内容
    • 如果初始化时,所有内容类型不一致,择数组中保存的是 NSObject
//: array1 仅允许追加 String 类型的值
//array1.append(18)

var array2 = ["zhangsan"18]
//: 在 Swift 中,数字可以直接添加到集合,不需要再转换成 `NSNumber`
array2.append(100)
//: 在 Swift 中,如果将结构体对象添加到集合,仍然需要转换成 `NSValue`
array2.append(NSValue(CGPointCGPoint(x: 10, y: 10)))
  • 数组的定义和实例化
    • 使用 : 可以只定义数组的类型
    • 实例化之前不允许添加值
    • 通过let 变量名 = [类型]()实现数组的初始化
var array3: [String]
//: 实例化之前不允许添加值
//array3.append("laowang")
//: 实例化一个空的数组
array3 = [String]()
array3.append("laowang")
  • 数组的合并
    • 必须是相同类型的数组才能够合并
    • 开发中,通常数组中保存的对象类型都是一样的!
letarray = [1,2,3,4,5]
vararray2 = [6,7]
array2.append(9)
vararray3: [NSObject] = ["123",12]
//数组的合并
        // 1. 先让 arrayarray2合并
        let sumArray = array + array2
       
       
print(sumArray)
       
       
// 2. array2array3合并
        // 数组合并的时候,也是相同类型才可以合并
//        let sumArray2 = array2 + array3
        // 遍历一下 array2 ,array2添加到新数组里
        var sumArray3 = array3
       
for sum in array2 {
            sumArray3.
append(sum)
        }
  • 数组的删除
//: 删除指定位置的元素
array3.removeAtIndex(3)
//: 清空数组
array3.removeAll()

2. 字典
1.同样使用 [] 定义字典,[String : NSObject] 是最常用的字典类型
2.let声明不可变的字典;var声明可变的字典
3.如果字典里没有对应的key,直接 dict["name"] = "xyy"就添加了一个键值对;
       如果字典里有对应的key,直接替换原有的值
       直接让key所对应的值 = nil,就删除了这个键值对
4.直接让key所对应的值= nil,就删除了这个键值对
        dict["key"] =nil
5.想添加任意类型的数据,我们的字典该怎么初始化?? -- 他的类型是通过自动推到
varnewDict = [String:NSObject]()
6.字典的合并 -- 很少用,不是用+ .只能通过遍历的形式
//: [String : NSObject] 是最常用的字典类型
var dict = ["name""zhangsan""age"18]
//: * 如果 key 不存在,会设置新值
dict["title"] = "boss"
//: * 如果 key 存在,会覆盖现有值
dict["name"] = "xyy"
  • 遍历
    • kv 可以随便写
    • 前面的是 key
    • 后面的是 value
//: 遍历
for (k, v) in dict {
    print("\(k) ~~~ \(v)")
}
  • 合并字典
    • 如果 key 不存在,会建立新值,否则会覆盖现有值
//: 合并字典
var dict1 = [StringNSObject]()
dict1["nickname"] = "大老虎"
dict1["age"] = 100

//: 如果 key 不存在,会建立新值,否则会覆盖现有值
for (k, v) in dict1 {
    dict[k] = v
}
print(dict)
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 京东券集市 黑了怎么办 任性付通过不了怎么办 对待任性的家人怎么办 任性付暂停服务怎么办 淘宝退货运费太贵卖家不退怎么办 顺丰文件丢失怎么办 京豆负9千多怎么办 京东押话题没了怎么办 没退运费险怎么办 本人身份证丢了怎么办 输入农行卡三次怎么办 花呗支付超限怎么办 在商场买到破衣服怎么办 vans鞋子磨脚怎么办 衣服白领子发黄怎么办 白衬衣染上黑色怎么办 车超过年检日期怎么办 用过期卫生间痒怎么办 驾照过期一个礼拜怎么办 月经总是后漏怎么办 护垫掉厕所里怎么办 健身房老板拿钱跑了怎么办 手机游戏变竖屏了怎么办 轮胎钢圈处磨损怎么办 屋里有刺鼻气味怎么办 脸上都是荧光剂怎么办 mac系统卡死了怎么办 笔记本关机要很久怎么办 mac关不了机怎么办 mac蓝屏无法开机怎么办 凤凰系统内存小怎么办 proe安装完成打不开怎么办 绿叶竹根发黑怎么办 月经期间肚子凉怎么办 来月经肚子冷怎么办 月经越来越少了怎么办 卫生巾闷出红疹子痒怎么办 开动物检疫证明怎么办 打桩机钻头掉了怎么办 临牌怎么办没有合格证 没有合格证怎么办零牌