Swift-基础

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 = nil
2.给可选类型赋值
    * name = “why”
3. 取出可选类型的值
        * name!
4. 如果可选类型为nil,强制解包会出错 先判断,再解包

5. 可选绑定
    * if let name = name {}

数组

1.数组的定义
    *不可变数组的定义: 使用 let 
    * 可变数组的定义 : var
2. 对可变数组的操作
    * 增删改查
3.数组的遍历
    * for i in 0..

字典

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

你可能感兴趣的:(Swift-基础)