为了账号安全,请及时绑定邮箱和手机立即绑定
  • 学习或创建一个数据结构注重对增、删、改、查的学习

    创建一个数组:

           

    增:

    .append(添加内容): 依次为数组添加元素

    数组名 += [添加内容]: 即使只添加一个元素也需要[],因为参与运算的元素要是一致数据类型的


    .insert(添加的内容, atIndex: 索引):遇到索引就要注意索引越界问题


    删:

    .removeLast():删除数组最后一个元素

    .removeFirst():删除数组的第一个元素

    .removeAtIndex(索引值):删除特定(索引值对应)的数组元素

    .removeRange(索引范围):删除特定范围(索引范围对应的)的数组元素

    .removeAll():删除所有元素,该数组为空数组


    改:

    数组名[索引值] = [修改内容]:修改对应索引的内容

    数组名[索引范围] = [对应索引范围的修改内容]:修改对应索引范围的内容,注意索引范围的索引个数和修改内容数组的元素个数并不一致。

    查看全部
  • 2. 数组的基本用法


    数组名.count: 数组元素个数


    数组名.isEmpty: 判断数组是否为空,返回是布尔类型


    通过索引值(数组下标)获取元素(数组从0开始索引,索引值为0的是第一个数组元素):

                                          数组名[索引值]

    注意:用数字索引会发生索引越界问题,需要开发者控制。


    数组名.first / .last: 取数组的第一个 / 最后一个元素, 返回的是可选型(有的数组不一定存在第一个或者最后一个元素)

    可选类型应用:空数组名.first 返回的是 nil 

    在实际使用.first的时候可以解包使用如:if let 变量名 = 数组名.first{ 使用到该数组第一个元素的语句 }(这样使用可在遇到空数组或者没有第一个元素的时候不会崩溃)


    let定义为常量时,数组不会变化(用户修改不了),可确定数组是否为空来确定是否可以强制解包,这里安全性是由开发人员来保障。


    逻辑判断最后一个元素:数组名[数组名.count - 1]


    数组名.minElement() / .maxElement(): 返回可选型 


    获取一定范围的子数组:

                      数组名[范围(eg:1..<4)]


    数组名.contains():验证返回这个数组是否存在某个元素,返回布尔类型


    数组名.indexOf():验证这个数组是否存在某个元素,但返回的是索引值


    for循环遍历数组获取数组元素、数组元素索引值(.enumerate())     

                        for 变量名 in 数组名 {对获取的数组元素进行操作}

                        for (索引变量名, 元素变量名) in 数组名.enumerate() {使用到索引值和元素的语句}

     数组名1 == 数组名2 :其他语言比较的是引用(也是地址吧),此语句不成立,swift比较的是值,故此语句成立。

    强调:数组是一个有序的数据集合(在比较的时候要特别注意)

    查看全部
  • 二、容器类:数组(array)、 字典(dictionary)、 集合(set)


    1.数组 array

    • 声明初始化数组:[ , ]

    • 数组中各元素的元素类型必须是一致的

    • 显式声明初始化:变量名: [数据类型] = [元素1, 元素2,...] 

                        变量名: Array<数据类型> = [元素1, 元素2, ...]

    • 声明初始化空数组:变量名 = Array<数据类型>()

      • 非显式声明空数组:变量名 = [数据类型]()

    • 当在实际应用中,出现数组中的参数很多且初始值为0或者为某一相同值时,可以用如下方式声明初始化数组:                     

                      变量名 = [数据类型](count: 5, repetedValue: 0) 

                变量名 = Array<数据类型>(count: 5, repetedValue: 0)

    注意:

    • 字符串数据类型和字符数据类型。" "默认为字符串数据类型,字符数据类型可定义数据类型为Character(字符类型数组需用对应的数据类型显式声明初始化)

    • 在swift中Array和NSArray虽然都是数组,但不是同一种东西。

    查看全部
  • 集合的高级使用
    查看全部
  • 数组初始化
    查看全部
  • 元组: 函数的返回值有多个需要考虑返回元组

    func finmaxAndMin( numbers:[int]) -> (max: Int, min: Int){

        return (30,0)

    }

    查看全部
  • //隐式可选型 可为nil,可有值

    var numbers: [Int] = [1,2,3,4,5]

    var oneToFive = [1,3,4,2,5]

    var vowels : [String] = ["A","E","I","O","U"]


    vowels.count

    vowels.isEmpty

    vowels[1]

    vowels.first

    vowels.last

    vowels.min()

    vowels.max()

    vowels.index(of: "E")

    numbers.index(of: 3)

    numbers[2..<4]

    for (index,value) in vowels.enumerated(){

        print(value)

        print(index)

    }

    //swift数组是否相等 是判断值是否相等,有序的数据集合

    oneToFive == numbers


    查看全部
  • //隐式可选型 可为nil,可有值

    class City{

        var cityName: String

       unowned var country: Country

        init(cityName: String, country: Country) {

            self.cityName = cityName

            self.country = country

        }

    }

    class Country {

        let countryName: String

        var capitalCity: City?

        init(countryName: String, capitalCity:String) {

            self.countryName = countryName

            self.capitalCity = City(cityName: capitalCity, country: self)

        }

        func showInfo(){

            print("this is \(countryName)")

            print("the capital is \(String(describing: capitalCity?.cityName))")

        }

    }

    let china = Country(countryName: "China", capitalCity: "beiJing")

    china.showInfo()


    查看全部
  • var ageInput: String = "16"

    var age = Int(ageInput)//类型转换涉及到可选型

    if let age = age, age < 20{

        print("you are teenager\n")

    }


    查看全部

  • swit 的三目运算符

    var errorMessage: String? = nil

            let message1 = errorMessage ?? "no Error"

            let message2 = errorMessage == nil ? "no error" : errorMessage


    查看全部
  • 可选型:swift的设计师不认为 nil null应该是某种类型(int)的特殊值,nil就是一种类型

    2.可选型必须依附其他类型

    var errorCode: String? = "404"

    var errorMessage: String? = "not found"

    if let errorCode = errorCode{

        "error code is " + errorCode

    }

    if let errorCode = errorCode, errorMessage = errorMessage, where errorCode == "404"{

    //通过where添加限制条件

    }

    查看全部
  • errorMessage?.uppercased()

    "?" 尝试进行解包

    errorMessage!.uppercased()

    "!"强制进行解包

    查看全部
  • 默认都是传值,传引用用inout关键字

    查看全部
  • errormessage?.upercasString


    查看全部
  • let message =er ?? "not found"

    查看全部
  • 04-2 可变长参数

    // 变长参数只能有一个

    // 变长参数不一定放在最后

    func mean( numbers: Double ... ) -> Double{

    // 将变长参数当做一个数组看待

        for number in numbers{


    查看全部
  • 大写的服
    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
本课程适合至少有一门编程语言基础的同学用于学习Swift语言。也适合在学习使用swift进行iOS开发的过程中,遇到不清楚的swift语言问题随时查询。
老师告诉你能学到什么?
这是《玩儿转swift2.0》系列课程的第二季。通过整个系列课程的学习,大家可以全面、深入地了解swift的语法与语言特性,理解swift的设计原则和理念,同时对面向对象、面向协议、面向函数等思想有一定的了解,对swift语言的掌握达到中等偏上的水平。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!