美文网首页
Swift语法笔记Part2

Swift语法笔记Part2

作者: 喵鸢 | 来源:发表于2017-03-10 02:53 被阅读12次

    Swift-day2主要内容

    • 字符串

      • 字符串的定义
      • 获取字符串的长度
      • 字符串的拼接
      • 字符串的截取
    • 数组的使用

      • 数组的定义
      • 对可变数组的操作
      • 数组的遍历
      • 数组的合并
    • 字典的使用

      • 字典的定义
      • 对可变字典的操作
      • 字典的遍历
    • 元祖的使用

      • 元祖&数组&字典的对比
      • 元祖的定义

      字符串

    字符串的介绍

    • OC和Swift中字符串的区别
      • 在OC中字符串类型时NSString,在Swift中字符串类型是String
      • OC中字符串@"",Swift中字符串""
    • 使用 String 的原因
      • String 是一个结构体,性能更高
      • NSString 是一个 OC 对象,性能略差
      • String 支持直接遍历
      • Swift 提供了 StringNSString 之间的无缝转换

    字符串的使用

    • 1.定义字符串
      • 1️⃣定义不可变字符串
    // 1> 定义不可变字符串 : 使用let修饰
    let str : String = "hello swift"
    // str = "hello Objective-C" 不可变字符串无法修改
    
    * 2️⃣定义可变字符串
    
    // 2> 定义可变字符串 : 使用var修饰
    var strM : String = "hello world"
    strM = "hello china"
    
    • 2.获取字符串的长度
      • 获取字符集合,再获取集合的count属性
    let count = str.characters.count
    
    • 3.字符串的拼接
      • 两个字符串的拼接
    let str1 = "Hello"
    let str2 = "World"
    let str3 = str1 + str2
    
    * 字符串和其他数据类型的拼接
    
    let name = "dxw"
    let age = 18
    let info = "my name is \(name), age is \(age)"
    
    * 字符串拼接格式化
        * 比如时间:03:04
    
    let min = 3
    let second = 4
    //02d显示不足两位,用0补齐
    let time = String(format: "%02d:%02d", arguments: [min, second])
    
    • 4.字符串的截取
      • Swift中提供了特殊的截取方式
        • 该方式非常麻烦
        • Index创建较为麻烦
      • 方式一:简单的方式是将String转成NSString来使用(推荐)
      • 在标识符后加:as NSString即可
    let urlString = "www.baidu.com"
    // Swift中通过 as 关键字可以将String类型转成NSString的类型
    let header1 = (urlString as NSString).substring(to: 3)//截到3,从0位开始
    let footer1 = (urlString as NSString).substring(from: 10)
    let range1 = NSRange(location: 4, length: 5)
    let middle1 = (urlString as NSString).substring(with: range1)
    
    * 方式二:使用swift中String截取方式
    
    let urlString = "www.baidu.com"
    let headerIndex = urlString.index(urlString.startIndex, offsetBy: 3)
    let header2 = urlString.substring(to: headerIndex)
    let footerIndex = urlString.index(urlString.endIndex, offsetBy: -3)
    let footer2 = urlString.substring(from: footerIndex)
    let startIndex = urlString.index(urlString.startIndex, offsetBy: 4)
    let endIndex = urlString.index(urlString.startIndex, offsetBy: 9)
    let range2 = Range(startIndex..<endIndex)
    let middle2 = urlString.substring(with: range2)
    

    数组

    数组的介绍

    • 数组(Array)是一串有序的由相同类型元素构成的集合
    • 数组中的集合元素是有序的,可以重复出现
    • Swift中的数组
      • swift数组类型是Array,是一个泛型集合

    数组的使用

    • 1.数组的定义(初始化)
      • 数组分成:可变数组和不可变数组
        • 使用let修饰的数组是不可变数组
        • 使用var修饰的数组是可变数组
        • 定义不可变数组
          • 写法1:Array<String>
          • 写法2:[String] 推荐使用
    let array : [Any] = ["dxw", 18, 1.88]
    let arry : Array<String> = ["dxw""wxf"]
    let array = ["dxw""wxf"]//类型推导
    
    * 定义可变数组
    
    var arrayM : [String] = Array()//创建数组,不能省略类型,否则会报错,因为之后不知道数组中存放什么类型
    var array = Array<String>()
    var array = [String]()
        ```
    - 2.对可变数组的基本操作--增删改查
    ```swift
    // 添加数据
    array.append("gtx")
    // 删除元素
    array.removeFirst()
    // 修改元素
    array[0] = "lxf"
    // 取值
    array[1]
    
    • 3.对数组的遍历--掌握
      • 获取数组长度array.count

    // 方式一:遍历数组 可以拿到下标值
    for i in 0..<array.count {
    print(array[i])
    }
    // 方式二:forin方式 可以拿到元素
    for item in array {
    print(item)
    }
    // 方式三:设置遍历的区间
    for item in array[0..<2] {
    print(item)
    }
    // 方式四:遍历数组的同时获取下标值
    let names = ["dxw", "wxf", "gtx", "lxf"]
    for (index, name) in names.enumerate() {
    print(index)
    print(name)
    }

    - 4.数组的合并
    ```swift
    // 数组合并
    // 注意:只有相同类型的数组才能合并
    var array = ["dxw", "wxf","gtx"]
    var array1 = ["lxf", "dt"]
    var array2 = array + array1;
    // 不建议一个数组中存放多种类型的数据
    var array3 = [2, 3, "why"]
    var array4 = ["yz", 23]
    array3 + array4
    

    元组

    元组的介绍

    • 元组是Swift中特有的,OC中并没有相关类型
    • 它是什么呢?
      • 它是一种数据结构,在数学中应用广泛
      • 类似于数组或者字典
      • 可以用于定义一组数据
      • 组成元组类型的数据可以称为“元素”

    元组的定义

    • 元组的常见写法
    // 写法1:使用元组描述一个人的信息
    ("1001", "张三", 30, 90)
    .0
    .1
    // 写法2:给元素加上元素名称,之后可以通过元素名称访问元素
    (id:"1001", name:"张三", english_score:30, chinese_score:90)
    .age
    .name
    .id
    //写法3
    (name,age,height) = (dxw,18,170)
    age
    name
    
    • 注意:从数组中若存放Any类型,取出来的就是Any类型,要使用对应方法还需要强制一下。所以用数组虽然可以保存多种信息,但是特别不好用
    • 注意:若用字典使用Any,取出来的是Any?
    • 所以,数组和字典都不好用,危险。元组取出来的数据更加方便,是数据的真实类型

    元组的简单使用

    • 用元组来描述一个HTTP的错误信息
    // 元组:HTTP错误
    // let array = [404, "Not Found"]
    // 写法一:
    let error = (404, "Not Found")
    print(error.0)
    print(error.1)
    // 写法二:
    let error = (errorCode : 404, errorInfo : "Not Found")
    print(error.errorCode)
    print(error.errorInfo)
    // 写法三:
    let (errorCode, errorIno) = (404, "Not Found")
    print(errorCode)
    print(errorIno)
    

    相关文章

      网友评论

          本文标题:Swift语法笔记Part2

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