• 1.在ios开发中,数组经常用到,今天我们就来说说数组// 1.定义一个不可变数组 let arrayC = [1,2,3] // 2.定义一个可变数组 // 2.1 定义一个任意类型的数组 //var arrayM = Array<T>() var arrayM = ...

    1.在ios开发中,数组经常用到,今天我们就来说说数组

    // 1.定义一个不可变数组
    let arrayC = [1,2,3]
    
    // 2.定义一个可变数组
    //  2.1 定义一个任意类型的数组
    //var arrayM = Array<T>()
    var arrayM = Array<Any>()
    //  2.2 定义一个int类型的数组
    var arrayM2 = [3,4,5,6]
    
    // 3.往数组里面增加一个元素
    arrayM.append(7)
    arrayM.append("12312")
    arrayM2.append(7)
    
    // 4.往数组里面删除一个元素
    arrayM.remove(at: 0)
    
    // 5.数组里面改变一个元素
    arrayM[0] = 200
    
    // 6.往数组查找一个元素
    arrayM[0]

    2.swift中的数组新增了一个capacity属性,它的值是成倍数增加的

    3.遍历数组的几种方式

    var arrayMM = [1,2,3,4,5]
    // 1.遍历索引
    for i in 0 ..< arrayMM.count	 {
        print("i=\(i)")
    }
    
    // 2.遍历数组
    for value in arrayMM{
        print("value=\(value)")
    }
    
    // 3.遍历索引和数组
    for (index,value) in arrayMM.enumerated() {
        print("index=\(index)")
        print("value=\(value)")
    }
    

    展开全文
  • //// ViewController.swift// 011-数组//// Created by 庄壮勇 on 2018/1/3.// Copyright © 2018年 Personal. All rights reserved.//import UIKitclass ViewController: UIViewController { override func ...

    //
    //  ViewController.swift
    //  011-数组
    //
    //  Created by 庄壮勇 on 2018/1/3.
    //  Copyright © 2018年 Personal. All rights reserved.
    //

    import UIKit

    class ViewController: UIViewController {

        override func viewDidLoad() {
            super.viewDidLoad()
            demo5()
        }
       
        // MARK: - 数组的合并
        func demo5() {
            var array:[Any] = ["张三","小芳","小羊"]
            let array2 = ["老刀","1","2",180] as [Any]
           
            // 将array2 的内容合并到 array
            // ***注意: 要合并数组的类型必须一致
            array += array2
           
            print(array)
        }
       
        // MARK: - 数组的容量
        func demo4() {
            // 定义一个数组,指定类型是 存放Int 的数组,但是没有初始化
    //        var array:[Int]
    //        // 给数组进行初始化
    //        array = [Int]()
           
            // 以上两句代码可以合并成一句
            var array = [Int]()
            print("初始容量 \(array.capacity)")

            for i in 0..<8 {
                array.append(i)
                print("\(array) 容量 \(array.capacity)")
            }
           
        }

        // MARK: - 数组的增/删/改
        func demo3() {
            // OC 中数组分可变NSMutableArray(var) 不可变 NSArray(let)
            var array = ["张三","小芳","小羊"]

            // 追加元素
            array.append("老王")
            print(array)
           
            // 修改,通过下标定位
            array[0] = "小王"
            print(array)
           
            // 数组越界 - Index out of range
            //array[5] = "XXXX"
            //print(array)
            // 删除
            array.remove(at: 3)
            print(array)
           
            // 删除全部,并且保留空间
            array.removeAll(keepingCapacity: true)
            print("\(array) \(array.capacity)")
        }
       
        // MARK: - 数组的遍历
        func demo2() {
            let array = ["张三","小芳","小羊"]
           
            // 1.按照下标遍历
            print("--- 按照下标遍历")
            for i in 0..<array.count {
                print(array[i])
            }

            // 2.for in 遍历元素
            print("--- 按照下标遍历")
            for s in array {
                print(s)
            }
           
            // 3. enum block 遍历, 同时遍历下标和内容
            print("--- 同时遍历下标和内容")
            // 元组
            for e in array.enumerated() {
                print("\(e.offset) \(e.element)")
            }
           
            // 4. 遍历下标和内容2
            print("--- 遍历下标和内容2")
            // n 就是索引下标
            // s 就是[String] 数组 n 对应的 String 元素
            // 其中 n / s 的名字可以随便写
            for (n,s) in array.enumerated() {
                print("\(n) \(s)")
            }

            // 5. 反序遍历
            print("--- 反序遍历")
            for s in array.reversed() {
                print(s)
            }
           
            // 6. 错误的反序索引&内容
            print("--- 错误反序索引&内容")
            for (n,s) in array.reversed().enumerated() {
                print("\(n) \(s)")
            }
            // 7. 正确的反序
            print("--- 正确反序索引&内容")
            // 先枚举,再反序
            for (n,s) in array.enumerated().reversed() {
                print("\(n) \(s)")
            }
        }
       
        // MARK: - 数组的定义
        func demo1() {
           
            // OC 使用[] 定义数组,Swift一样,但是没有'@'
            // 自动推导的结果[String] -> 表示数组中存放的都是String
            // 跟OC 中的数组指定泛型类似
            let array = ["张三","小芳","小羊"]
           
            print(array)
           
            // [Int] -> 表示存放的都是Int
            // Swift 中基本数据类型不需要包装!
            let array2 = [1,2,3,4,5]
            print(array2)
           
            // CG结构体
            let p = CGPoint(x: 10, y: 300)
            // [CGPoint]
            let array3 = [p]
            print(array3)
           
            // 混合数组: 开发中几乎不用,因为数组是靠下标索引
            // 如果数组中的类型不一致,自动推导的结果[NSObject]
            // 在Swift 中还有一种类型[AnyObject] -> 任意对象
            // 在Swift 中一个类可以没有任何‘父类’
            NSValue(cgPoint: p)
            let array4 = ["张三",1,NSValue(cgPoint: p)] as [Any]
            print(array4)
        }
    }


    展开全文
  • Swift基础(四)数组

    2016-07-11 15:33:38
    // Swift 的类型推断:如果使用数组字面量来初始化一个数组,那么这个数组字面量的值具有相同的类型,可以不必明确这个数组的类型。  var teachers = ["Mr. Wang", "Mr. Liu"];  // 因为teachers数组字面量中的...
    // Swift 的类型推断:如果使用数组字面量来初始化一个数组,那么这个数组字面量的值具有相同的类型,可以不必明确这个数组的类型。
            var teachers = ["Mr. Wang", "Mr. Liu"];
            // 因为teachers数组字面量中的所有值具有相同的类型,所以Swift可以推断出teachers变量的类型就是[String]
            
            // 获取数组中包含元素的个数,可以通过点语法count。
            var arrayCount = teachers.count;
            print("teachers 数组一共\(arrayCount) 位老师");
            // 输出“teachers数组一共2位老师”
            
            // 使用Bool型的isEmpty属性,可以快速检查count属性是否为0;
            if teachers.isEmpty {
                print("The teachers array is empty.");
            } else {
                print("The teachers array is not empty");
            }
            // 输出“The teachers array is not empty”
            
            // 给数组的末尾添加一个元素,可以调用数组的append方法,或者+=操作符
            teachers.append("Mr. Li");
            // teachers现在包含3个元素
            
            teachers += ["Mr. Jiang"];
            // teachers现在包含4个元素
            
            // +=操作符,可以同时添加多个元素
            teachers  += ["MingYang", "Heri.Ren"];
            // teachers现在包含6个元素
            
            // 插入一个元素到特定位置,可以调用数组的insert(atIndex:)方法
            teachers.insert("HongJun", atIndex: 0);
            // teachers现在包含7个元素,清单的第一个元素现在是“HongJun”
            
            // 通过坐标操作的还有removeAtIndex方法,可以从数组中删除一个元素。该方法删掉指定索引上的元素,并返回这个被删掉的元素(如果不需要返回值,可以忽略它)
            let oneTeacher = teachers.removeAtIndex(1);
            // 索引为1的元素已从数组中删除掉了
            print(oneTeacher);
            
            // 想删除数组的最后一个元素时,可以使用removeLast方法。这个方法也返回被删除的元素
            let delTeacher = teachers.removeLast();
            print(delTeacher);
            
            // 获取数组的一个元素可以使用下标语法,即在数组名后面紧跟着的一对括号中传进去要取得的元素的索引值。注意,数组第一个元素的索引值为0,而不是1.Swift的数组是从0开始索引的。
            var firstItem = teachers[0];
            
            // 可以使用下标语法来改变给定索引已存在的值。
            teachers[0] = "Mr. Shao";
            
            // 也可以使用下标语法一次性改变指定范围的值,这里允许将要被替换掉得元素的数量和将要替换成的元素的数量不一样。下面的例子将数组1、2、3三个元素替换成了“HuiTong”和“Gaven”两个元素
            teachers[1...3] = ["HuiTong", "Gaven"]; // 元素替换
            print(teachers);
            
            // 数组的遍历
            // 使用for-in循环来遍历所有数组中的数据项
            for item in teachers {
                print(item);
            }
            
            // 如果同时需要每个元素的值和下标值,可以使用全局函数 enumerate() 来进行数组遍历。enumerate()返回一个由每一个元素写下标和数据值组成的键值对组。
            for (index, value) in teachers.enumerate() {
                print("Item \(index): \(value)");
            }

    展开全文
  • swift 二维数组

    2016-04-07 04:23:25
    数组首先我们来看下swift中一维数组,有如下两种定义方法1.var arry: [Int] = [Int]()由于 swift 是一种强推断类型,所以在声明的时候可以省去类型[Int],我们同样可以用下面的方式声明一个一维数组var arry = [Int]...

    数组

    首先我们来看下swift中一维数组,有如下两种定义方法

    1.

    var arry: [Int] = [Int]()

    由于 swift 是一种强推断类型,所以在声明的时候可以省去类型[Int],我们同样可以用下面的方式声明一个一维数组

    var arry = [Int]()

    2.

    第二种声明方式类似java中声明一个arraylist:

    var arry = Array<Int>()

    利用这两种方式我们都可以获得一个空的一维数组, 在playground右边可以看到,声明后的数组为:[] ,但是推荐使用第一种方法。

    二维数组

    什么是数组中的维数

    我们可以理解为,通过几次索引可以找到我们存的值就为几维数组,例如:
    一维数组a,通过一次索引查找a[0]就可以查到对应的值,二维数组b,就需要两次索引查找b[0][0]才可以查到对应的值。
    从几何角度上看, 一维数组相当于一个数轴,二维数组相当于xy坐标系,高维数组同理。

    二维数组 就相当于一维数组里面又存储了一个一维数组,所以说定义一个二维数组如下:

    var arry = [[Int]]()

    然后我们往里面添加几组数据:

    arry.append([1,2,3,4]) 
    arry.append([1,2,5])
    arry.append([2,1,5,6,7])

    于是我们可以得到 arry 这个二维数组如下:

             [[1, 2, 3, 4], [1, 2, 5], [2, 1, 5, 6, 7]]
    

    那么我们如何获取数组中的元素呢?

    我们想找到 6 这个数,首先要找到6所在的位置应该是数组arry的(2,3)位置(从0开始),所以我们需要通过arry[2]先获得[2,1,5,6,7],然后(arry[2] )[3] 找到 6 这个元素所在的位置,简化为arry[2][3],这样我们就获得取得到对应位置的元素了

    展开全文
  • 四种初始化方式  let sArray = [1.2,3,4,5,6] let sArray1:Array = [12,3,4,5,6,6] let sArray2:Array = [1,2,3,29] let sArray3:[Int] = [3,2,21,5,6] 数组元素可以是不同类型 let array1:...

    学习笔记

    四种初始化方式 
    let sArray = [1.2,3,4,5,6]
    let sArray1:Array = [12,3,4,5,6,6]
    let sArray2:Array<Int> = [1,2,3,29]
    let sArray3:[Int] = [3,2,21,5,6]

    数组元素可以是不同类型
    let array1:[Any] = ["a",12,1.2]
    let array2:Array< AnyObject> = [1,2,"12",2.3]

    数组元素的访问 修改 增加 删除 
    var array3:[Any] = [“111”,"222”,"333”,”444”,”aaa"]
    print(array3[2]) //访问数组元素 不能越界
    print(array3)
    array3.insert(1212, atIndex: 2) //插入
    print(array3)
    array3.append(1.23) //最后位置增加
    print(array3)
           
    array3[2] = "hello" //修改
    print("容量 \(array3.capacity)")
           
    array3.removeLast() // 删除最后一个元素
    array3.removeFirst() //删除第一个元素
    print(array3)
    array3.removeFirst(1) //删除从0开始的n个元素
    print(array3)
    array3.removeAtIndex(1) //删除指定位置元素
    print(array3)

    数组的批量操作
    var nRange:Range<Int> = 1..<3
    nRange = Range(start: 1, end: 5)
    print(nRange)
           
    //数组批量操作
    var array4:[AnyObject] = ["aaa",1,2,3,1.2,"bbbbb"]
    print(array4)
    array4.replaceRange(nRange, with: ["sss",12])
    array4.replaceRange(Range(start: 0, end: 1), with: ["sss",12])
    print(array4)
    array4.replaceRange(1..<3, with: ["ooooooo"])
    print(array4)
    array4[1...2] = [0,0,0,0,0,0]
    print(array4)
    array4 += ["a","b","c"]
    print(array4)
    array4 += array4[0...1]
    print(array4)

    数组遍历
    for elm in array4 {  //遍历数组元素
         print(elm)
    }

    for (index,element) in array4.enumerate(){
         print("\(index)--\(element)")

    展开全文
  • Swift初见】Swift数组

    2015-02-27 20:25:04
    在Objective-C中数组是常用的数据类型,在Swift中同样如此,在OC中有NSArray与NSMutableArray之分,但是在Swift中只有通过let和var来区分数组是否可变,Swift中的数组是类型安全的,所以在某个数据被存入到某个数组...
  • //创建数据的几种方式 var someArray1 = [String](repeatElement("123", count: 3)) //类型是字符串,默认是123 长度是3 var someArray2 = ["123","123","123"] var someArray3 : [String]=["123","123","123"] ...
  • 免费下载地址:https://itunes.apple.com/cn/app/id1320746678◈ 不看视频不看书,手把手带您学习Swift语言◈ 利用手指来互动式学习Swift 4.0◈ 无痛上手,比观看视频、阅读书籍更加有趣、更加有效的学习方式 ◈ 变...
  • Swift4.0入门视频教程,课程内容包含Swift入门知识、数据类型(元组、Dictionary、运算符)、流程控制、函数、类与对象、扩展协议、常见概念、实用进阶、案例实战。 1、119节大容量课程:包含了Swift4.0语言大部分...
  • 综述 讲到 UITableView,大家一定都不陌生。有一个相对夸张的说法,叫做学好 UITableView,你就是一名合格的iOS 工程师 闲话少说,最近在写 Swift 的过程中碰到了以下几个问题,特别在此记录。...初始化...
  • Swift 4是苹果计划于2017年秋季推出的最新版本,其主要重点是提供与Swift 3代码的源兼容性,并努力实现ABI稳定性。 本文重点介绍对Swift的更改将对您的代码产生最大的影响。 而且,让我们开始吧!
  • 定义数组常量(常量只有读操作) let array1: [Int] = [11, 55, 5] let array2 = [11, 55, 5] 定义数组变量 ...var array0: [Int] = [10, 20, 30] // 初始化并赋值 var array1: [Int] = Array(...
  • 数组 Arrays 1、一个数组只能存储特定类型的数据; 2、所存储的数据不一定是一个类的对象,可以是基础数据类型; var array = [&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;,&amp;quot;C&...
  • ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:...
  • swift4.0-11 类和结构体

    2019-04-28 00:40:49
    代码学习swift4.0, 类和结构体 // // main.swift // SwiftLearn11-类和结构体 // // Created by iOS on 2018/5/7. // Copyright © 2018年 weiman. All rights reserved. // impor...
  • 项目中也准备引入Swift,所以作者再次详细看了The Swift Programming Language (Swift 4.0.3)英文官方文档一遍,并且详细列举了本人认为大家比较常用并且应该掌握的所有知识点。这里不做深入探究,如果哪里不懂的话...
  • 素材:Language Guide初次接触 Swift,建议先看下 A Swift Tour ,否则思维转换会很费力,容易卡死或钻牛角尖。同样是每一章只总结3个自己认为最重要的点。这样挺好!强迫你去思考去取舍。以后再看,也方便快速重建...
  • Swift、Xcode和Cocoa入门指南(iOS9 Programming Fundamentals With swift)  第二章 函数  Swift语法中最具特色也最重要的就是声明和调用函数的方式;  所有代码都位于函数中,而动作则是由函数触发的;  ...
  • Swift4.0 Array详解

    2019-07-06 17:07:13
    数组的介绍  数组(Array)是一串有序的由相同类型元素构成的集合,数组中的集合元素是有序的,可以重复出现。在Swift数组类型是Array,... 一、初始化一个空数组(类型:[数据类型]())  1、创建一个整形...
1 2 3 4 5 ... 20
收藏数 863
精华内容 345