zoukankan      html  css  js  c++  java
  • Swift学习(三)类型推导&基本运算&分支&循环

    一、Swift中类型推导&基本运算

    Swift中类型推导
    • 如果一个标识符在定义时有直接赋值,那么可以根据后面赋值的类型,来推导出前面标识符的类型,这样前面标识符的(:类型)可以省略
    • 查看标识符类型:option + 鼠标左键

      

    • 整型
      • 有有符号
        • 8位、16位、32位、64位跟C语言中的相同。
        • Int:和平台相关,默认相当于OC中的NSInteger
      • 无符号
        • 8位、16位、32位、64位跟C语言中的相同。
        • UInt:和平台相关,默认相当于OC中的NSUInteger
     
    Swift中基本运算
    • Swift中在进行基本运算时必须保证类型一致,否则会出错
      • 相同类型之间才可以进行运算
      • 因为Swift中没有隐式转换
    • 数据类型的转化
      • Int类型转成Double类型:Double(标识符)
      • Double类型转成Int类型:Int(标识符)

        

    Swift中的逻辑分支

    一、if 分支语句 
    • 和OC中if语句有一定的区别
      • 判断句可以不加()
      • 判断句结果 必须是一个真假值

        

      • 正确写法:
        • let y = 10
          if y > 0 {
              print("y > 0")
          } else {
              print("y <= 0")
          }

    二、switch 分支语句  
    • 基本用法跟OC一致
    • 不同:
      • switch后可以不跟()
      • case后可以不跟break(默认会有break)
    • 例子:
      • let sex = 0
        switch sex {
        case 0 :
            print("男")
        case 1 :
            print("女")
        default :
            print("泰国来的")
        }
     
    • 补充一: 一个case判断中可以判断多个值,多个值以,隔开
      • let sex1 = 0
        switch sex1 {
        case 0, 1:
            print("正常人")
        default:
            print("泰国来的")
        }
                正常人
    • 补充二: fallthrough 关键字可以实现case 穿透
      • let sex2 = 0
        switch sex2 {
        case 0:
            print("正常人0")
            fallthrough
        case 1:
            print("正常人1")
        default:
            print("其他")
        }
                         正常人0
                          正常人1
     
    • switch 特殊用法一:支持浮点型
      • let PI = 3.14
        switch PI {
        case 3.14:
            print("π")
        default:
            print("not π")
        }
     
    • switch 特殊用法二:支持字符串类型
      • let m = 5
        let n = 10
        var result = 0
        let opration = "+"
        switch opration {
        case "+":
            result = m + n
        case "-":
            result = m - n
        case "*":
            result = m * n
        case "/":
            result = m / n
        default:
            result = 0
        }

        print(result)  
                15
     
    • switch 特殊用法二:switch支持区间判断
    • swift中的区间常见有两种
      • 开区间:0..<10 表示:0~9,不包括10
      • 闭区间:0...10 表示:0~10
      • let score = 80
        switch score {
        case 0..<60:
            print("不及格")
        case 60..<80:
            print("及格")
        case 80..<90:
            print("良好")
        case 90..<100:
            print("优秀")
        default:
            print("满分")
        }
              良好
     
     
    三、三目运算符(跟OC中的一致) 
      

    四、guard 使用
      • guard是Swift2.0新增的语法
      • 它与if语句非常类似,它设计的目的是提高程序的可读性
      • guard语句必须带有else语句,它的语法如下:
        • 当条件表达式为true时候跳过else语句中的内容,执行语句组内容
        • 条件表达式为false时候执行else语句中的内容,跳转语句一般是return、break、continue和throw
      • 格式:
        • guard 条件表达式 else {
              // 条换语句
              break
          }
          语句组
      • 例子:
        • var manAge = 18
          func hit(age: Int) -> Bool {
              guard age >= 18 else {
                  print("打人不犯法")
                  return false
              }
              print("打人犯法")
              return true
          }
          hit(manAge)
        • 打人犯法

    Swift中循环

    一、for循环
    • 常规写法
      • for var i = 0; i < 3; i++ {
            print(i)
        }
     
    • 区间for循环
      • for i in0..<3 {
            print("-->", i)
        }
     
    • 特殊写法:如果在for循环中不需要用到下标i
      • for_in0...3 {
            print("hello siri")
        }
     
    二、while & do while循环
    • swift中的 while 的判断句必须有正确的真假,没有非0即真
      • var aa = 0
        while aa < 3 {
            aa++     // 这句如果不写就会 死循环
            print("hi siri")
        }
     
    • do while循环:使用repeat关键字来代替了do
      • var bb = 0
        repeat {
            bb++
            print("bbb")
        } while bb > 3
                bbb
  • 相关阅读:
    一、定义枚举类,并随机取值
    常用Linux日志查询命令
    一、爬虫之基础
    Jmeter接口自动化-3-生成HTML报告
    Jmeter接口自动化-2-查看结果数只能显示有限的数据,查看全部数据
    Jmeter接口自动化-1-启动报错:Could not initialize class org.apache.jmeter.gui.util.MenuFactory
    三十一、Java基础之Collection集合
    设计模式
    缓存
    Ckeditor配置
  • 原文地址:https://www.cnblogs.com/10-19-92/p/5608630.html
Copyright © 2011-2022 走看看