美文网首页
008-数组

008-数组

作者: 紫荆秋雪_文 | 来源:发表于2016-11-13 22:53 被阅读20次

1、数组的定义

  • 1-1、在swift中数组没有,不变和不可变区别
func demo() {
        //定义数组
        let array = ["小明", "小红", "小黑"]
        //自动推导的结果 -> 表示数组中存放的都是 String
        print(array)
        
    }
  • 1-2、swift中基本数据类型不需要包装
func demo1() {
        let array1 = [1, 2, 3, 4, 5]
        print(array1)
        //输出结果:[1, 2, 3, 4, 5]
    }
  • 1-3、cg 结构体
    func demo2() {
        let p = CGPoint(x: 10, y: 20)
        let array2 = [p]
        print(array2)
        //输出结果:[(10.0, 20.0)]
    }
  • 1-4、数组中元素类型不同
func demo3() {
        let p = CGPoint(x: 10, y: 20)
        
        let array3 = ["小明", 12, NSValue(cgPoint:p)] as [Any]
        print(array3)
        //输出结果:[(10.0, 20.0)]
    }

小结:

  • 1、混合数组:开发中几乎不用,因为数组是靠下标索引
  • 2、如果数组中的类型不一致,自动推导的结果[NSObject]
  • 3、在swift中还有一种类型[Anyobject] ->任意对象
  • 4、在swift中一个类可以没有任何‘父类’
  • 5、在混合的数组中,CG 结构体需要包装

2、数组遍历

func demo4() {
        let array = ["张三", "李四", "王五"]
        //1、按照下标遍历
        print("--- 按照下标遍历 ---")
        for i in 0..<array.count {
            print(array[i])
            //输出结果:
//            张三
//            李四
//            王五
        }
        
        //2、for in 遍历元素
        print("---for in 遍历元素 ---")
        for s in array {
            print(s)
//            输出结果:
//            张三
//            李四
//            王五
        }
        
        //3、enum block 遍历元素, 同时遍历下标和内容
        print("--- enum block 遍历元素, 同时遍历下标和内容 ---")
        for e in array.enumerated() {
//            print(e)
            print("\(e.offset)  \(e.element)")
//            输出结果:
//            0  张三
//            1  李四
//            2  王五
        }
        
        //4、遍历下标和内容2
        print("___ 遍历下标和内容2 ____")
        for (n, s) in array.enumerated() {
            print("\(n) \(s)")
//            输出结果:
//            0 张三
//            1 李四
//            2 王五
        }
        
        //5、反序遍历
        print("___ 反序遍历 ___")
        for s in array.reversed() {
            print(s)
//            输出结果:
//            王五
//            李四
//            张三
        }
        
        //6、反序列索引&内容
        print("___ 反序列索引&内容 ___")
        for (n, s) in array.reversed().enumerated() {
            print("\(n) - \(s)")
//            输出结果:
//            0 - 王五
//            1 - 李四
//            2 - 张三
        }
        
        //7、先枚举、再反序
        print("___ 先枚举、再反序 ___")
        for (n, s) in array.enumerated().reversed() {
            print("\(n) - \(s)")
        }
//        输出结果:
//        2 - 王五
//        1 - 李四
//        0 - 张三

    }

3、数组的 增、删、改

func demo5() {
        var array = ["小明", "小红", "小黑"]
        print(array)
        //输出结果:["小明", "小红", "小黑"]
        //1、增加元素
        array.append("小敏")
        print(array)
        //输出结果:["小明", "小红", "小黑", "小敏"]
        
        //2、修改
        array[0] = "小七"
        print(array)
        //输出结果:["小七", "小红", "小黑", "小敏"]
        
        //3、删除元素
        array.remove(at: 2)
        print(array)
        //输出结果:["小七", "小红", "小敏"]
        
        //4、删除全部元素,并且保留空间
        array.removeAll(keepingCapacity: true)
        print("\(array) 容量\(array.capacity)")
        //输出结果:[] 容量6
        
        array.removeAll()
        print("\(array) 容量\(array.capacity)")
        //输出结果:[] 容量0
        
    }

4、数组合并

    func demo6() {
        var array = [1, 2, 3, 4, 5]
        let array1 = [5, 4, 3, 2, 1]
        array += array1
        print(array)
        //合并后的结果:[1, 2, 3, 4, 5, 5, 4, 3, 2, 1]
    }

小结:数组合并时:要合并数组的两个类型必须一致

相关文章

  • 008-数组

    1、数组的定义 1-1、在swift中数组没有,不变和不可变区别 1-2、swift中基本数据类型不需要包装 1-...

  • 衣服作为礼物怎么用包装纸包装?

    用礼物纸包装衣服的方法。 礼盒先生 基础礼物包装008-衣服01【图文版】 1. 基础礼物包装008-衣服01↓ ...

  • 第八天 Nodejs操作mongodb(增删改查)

    008-第八天 Nodejs操作mongodb(增删改查) Nodejs操作mongodbmongoose模块帮助...

  • 008-真我

    毕业那年,我特想去深圳。家里不同意,嫌远,不放心我,担心我被骗了、被拐了。他们细数着村子里谁又进了传销组织,被骗了...

  • 008-【佳人】

    佳人 唐代:杜甫 绝代有佳人,幽居在空谷。 自云良家子,零落依草木。 关中昔丧乱,兄弟遭杀戮。 官高何足论,不得收...

  • 008-模块

    在Python中,一个文件就称之为一个模块(Module) 可以作为module的文件类型有: ".py"、".p...

  • 008-元组

    元组tuple 一个元组可以存储多个数据 元组中的数据不能直接修改 (数据,数据) 元组中如果只有一个数据,需要使...

  • 历史笔记

    历史笔记列表 010-规则之缝:黄牛是怎么赚钱的? 009-风险买卖:保险到底保什么? 008-给商品定价时,企业...

  • 让人烦恼的目标,都不符合SMART原则?

    2021.01.31 008-今天记录 案例:2021年重新开始启动的一个习惯就是抄写《道德经》,对于抄写《道德经...

  • 【火炉炼AI】机器学习008-简单线性分类器解决二分类问题

    【火炉炼AI】机器学习008-简单线性分类器解决二分类问题 (本文所使用的Python库和版本号: Python ...

网友评论

      本文标题:008-数组

      本文链接:https://www.haomeiwen.com/subject/bqncpttx.html