swift3.0 数组的相关知识

对于swift3.0数组的一些语法发生了简单的改变,但是总体来说跟之前还是一样的

    func demo1() {
        
        //1.简单的数组使用
        //数组使用[],跟C语言一样,但是他可以放任意类型的元素,可以自行判断数组的类型
        let array:Any? = ["一号",2,UIView()] //但是需要转换表示数组的类型为any
        print(array)
        //同类型的
        let array1 = ["一号", "2号","3","4"]
        print(array1)
        
        //基本类型可以直接用
        let array2 = [5,5,5,5]
        print(array2)
        
        //结构体
        let p = CGPoint(x: 10, y: 10)
        let array3 = [p,p,p,p]
        print(array3)
        
        let arr:Any? = ["一号",2,UIView(),p]
        print(arr)
        
        
        //2.遍历数组
        //使用下标遍历
        for i in 0..<array1.count {
            print(array1[i])
        }
        
        //使用数组遍历
        for str in array1 {
            print(str)
        }
        
        //使用enum block遍历,同时遍历下标和内容
        for e in array2.enumerated() {
            print(e.element)
            print(e.offset)
        }
        
        //也可以使用结构体作为元素,第一个就是索引,第二个是内容
        for (offset,element) in array2.enumerated() {
            print("offset = \(offset) \n element = \(element)")
        }
        
        //反序遍历
        for str in array1.reversed() {
            print(str)
        }
        
        //反序遍历使用enum
        for (offset,element) in array3.enumerated().reversed() {
            print(offset)
            print(element)
            
        }
        
        //3.可变数组与不可变数组
        //swift 的可变数组用var创建  不可变数组用let创建
        var arr1 = ["哥哥","弟弟弟","姐姐","妹妹"]
        print(arr1)
        //添加元素
        arr1.append("爸爸")
        print(arr1)
        
        //修改元素
        arr1[4] = "妈妈"
        print(arr1)
        
        //删除一个元素
        arr1.remove(at: 4)
        print(arr1)
        
        //删除全部元素。清楚了数组所占的空间
//        arr1.removeAll()
//        print("\(arr1)-------\(arr1.capacity)")   显示为[]------0
        
        //删除全部元素,并确定是否保留占有的空间
        arr1.removeAll(keepingCapacity: true)
        print("\(arr1)-------\(arr1.capacity)") //显示为[]------8
        
        
        //4.数组的初始化
        var arr2 = [Int]()  //表示该数组是一个Int类型的可变数组
        print(arr2.capacity)  //容量为0
        
        for i in 0...7 {
            arr2.append(i)
            print("\(arr2)------\(arr2.capacity)")
        }
        /*
        初始容量0
        [0],容量:2
        [0, 1],容量:2
        [0, 1, 2],容量:4
        [0, 1, 2, 3],容量:4
        [0, 1, 2, 3, 4],容量:8
        [0, 1, 2, 3, 4, 5],容量:8
        [0, 1, 2, 3, 4, 5, 6],容量:8
        [0, 1, 2, 3, 4, 5, 6, 7],容量:8
        
        第一次插入元素 容量为2
        以后每次容量不够时 会将当前容量乘以2
        可以不用每次都去分配空间
        */
        
        
        
        //5.数组的合并
        //创建一个NSObject类型的数组
        
        var arr3:[Any] = [String](arrayLiteral : "张三","李四","王麻子")
        let arr4:[Any] = ["赵文武",2]
        //合并数组 合并的数组的类型必须一致,
        arr3 += arr4
        print(arr3)
 
    }


发布了8 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/loveLittleKid/article/details/52934726