美文网首页
Swift-基础

Swift-基础

作者: shuigenObba | 来源:发表于2017-08-09 11:31 被阅读26次

    Swift 基础部分知识总结

    突然想写下一些东西,做一些总结,或许只有不断的总结不断的思考才会不断成长,才会更好。

    Swift基础知识朋友们可以去这里查看也可以看看我做的一些基础性总结。

    常量和变量

    常量的值一旦设定就不能改变,开发中优先使用常量。常量的本质是保存的内存地址不可以修改,但是可以通过内存地址拿到对应的对象,修改对象内部的属性

    • 声明
    /* 通过let 来声明常量*/
    let name = "张三"
    /* 通过var 来声明变量*/
    var age = 10
    
    
    • 类型标注

    在声明常量或者变量的时候可以加上类型标注(type annotation),说明常量或者变量值的类型,但是一般来说是不需要的,Swift会自动判断其类型

    let gae: Int = 10
    var name: String = "张三"
    
    
    • 常量和变量的命名

    Swift可以让你使用任何你喜欢的字符作为常量和变量名,包括Unicode字符:

    let π: Double =  3.1415926
    let 你好: String = "hello"
    

    注:常量或者变量名不能包含数字符号,箭头,保留的(或者非法的)Unicode码位,也不能以数字开头

    数据类型

    • 整形&浮点型
      • Int
      • Double
    • 类型推导
      • 如果定义一个标识符时,有直接给标识符赋值,那么会根据赋值的类型推导出标识符的类型
      • 可以option+左键查看其类型
    • swift的基本运算(Swift是强类型语言,必须保证类型一致)
    数据类型转换
    • 整形与整形

      let ageInt: UInt = 8
      let ageInt: Int = Int(ageUInt)
      
    • 整形与浮点型

      let weightInt: Int = 65
      let weightDouble: Double = Double(weightInt)
      
    • 类型别名

      typealias Integer8 = Int8
      let height: Integer8 = 100
      
    • boolean

      swift中的bool值指的是逻辑上的值,只存在真假

      let IamYourBoyFriend = true
      let IamYoourGF = false
      

    逻辑分支

    • if 分支

      if 后面的()可以省略
      没有非0即真

    • else if

    • 三木运算符

    • guard

        /* 当判断句为真的时候,执行语句组,否则执行else*/
        guard 判断句 else { 
            reture/break/continue
        }
        语句组
      
    • switch

    循环

    • for

      for var i = 0,i < 10, i++{}
      for i in 0..<10{}
      for _ in 0...10{}
      
    • while

      while 没有非0即真

    • repeat while

    字符

    • 字符串在任何的开发中使用都是非常频繁的

    • OC和Swift中字符串的区别

      在OC中字符串类型为NSString,在Swift中为String OC中字符串@“”, Swift中 “”

    • 使用String的原因

      string 是一个结构体,性能更高 NSString 是一个OC对象,性能略cha string 支持直接遍历 Swift中提供了 string 和NNString之间的无缝转换

    • 注意: 在字符串截取的时候,将String转换为NSString时比较方便

    元祖

    把多个值组合成一个值。元祖内的值可以是任何类型

        let http404Error: (Int, String) = (404, "Not Found")
        print("StatusCode: \(http404Error.0)")
    

    定义元祖的时候给元祖的单个元素命名,如果只需要一部分元祖值,可以使用_代替

        let http200 = (statusCode: 200, statusMessage: "OK")
        print("statusCode: \(http200.statusCode)   statusMessage: \     (http200.statusMessage)")
        let http500: (statusCode: Int, _: String) = (500, "内部服务器错误")
    

    可选类型(optional) 蛮重要的

    1.定义
        * var name: String? = nil
        * var name: Optional<String> = nil
    2.给可选类型赋值
        * name = “why”
    3. 取出可选类型的值
            * name!
    4. 如果可选类型为nil,强制解包会出错 先判断,再解包
    
    5. 可选绑定
        * if let name = name {}
    

    数组

    1.数组的定义
        *不可变数组的定义: 使用 let 
        * 可变数组的定义 : var
    2. 对可变数组的操作
        * 增删改查
    3.数组的遍历
        * for i in 0..<arrayM.count{}
        * for name in arrayM {}
        * for name in arrayM[0..<2] {}
    4. 数组的合并
        * 相同类型的数组可以相加进行合并
    

    字典

    1. 字典的定义
        *不可变字典 : let
        * 可变字典 : var
    2. 对可变字典的基本操作
        * 增删改查
    3. 字典的遍历
        * for key in dicM.keys {}
        * for value in dicM.values {}
    4. 字典的合并
        * 相同类型的字典也不能合并

    相关文章

      网友评论

          本文标题:Swift-基础

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