• swift基本体验


    Swift初体验

    1. 导入框架
    2.  定义标识符: let/var
    3.  语句结束时;可以省略
    4.  print()
    5.  let/var
    6. 逻辑分支
    7. 循环使用
    
    // 1.Swift中如何导入框架
    /*
     OC导入框架: #import <UIKit/UIKit.h>
     */
    import UIKit
    
    // 2.定义标识符
    /*
     OC定义标识符:
        int a = 20;
        a = 10;
     Swift定义标识符
        1> 定义标识符时,必须明确的指定该标识符是一个变量还是一个常量
        2> 使用var定义变量
        3> 使用let定义常量
        4> 定义格式: let/var 标识符名称 : 标识符类型 = 赋值
     */
    // 2.1.定义变量
    var a : Int = 20
    a = 10
    
    // 2.2.定义常量
    let b : Double = 3.14
    // b = 2.44 错误写法
    
    
    // 3.在swift中,如果一行当中只有一条语句,那么语句结束时 ; 可以省略
    
    
    // 4.打印内容
    /*
     OC打印内容:
        NSLog(@"Hello World");
        NSLog(@"%d", a);
     */
    
    print("hello world")
    print(a)
    
    

    1.注意一:

    在开发中,优先使用常量(let). 只有发现标识符需要修改时,再使用变量
    目的: 防止在其它不希望修改的地方,不小心将值修改掉

    2.注意二:

    常量的本质: 指向的内存地址不可以修改,但是可以通过内存地址找到对应的对象,之后修改对象内部的属性

    OC中创建对象:
    UIView *view = [[UIView alloc] init];
    Swift中创建对象:
    类型()

    // var a : Int = 20
    // a = 10
    
    /*
    var view : UIView = UIView()
    view = UIView()
     */
    
    // 1> 指向的内存地址不可以修改
    let view : UIView = UIView() // 0x100
    // view = UIView() // 0x200
    
    // 2> 但是可以通过内存地址,找到对应的对象,之后修改对象内部的属性
    view.alpha = 0.5
    view.backgroundColor = UIColor.blue
    

    Swift UIKit的基本使用

    // 需求: 创建UIView对象,并且在UIView中添加UIButton
    
    // 1.创建UIView对象
    // OC : [[UIView alloc] initWithFrame:CGRect]
    let rect = CGRect(x: 0, y: 0,  100, height: 100)
    let view : UIView = UIView(frame: rect)
    
    // 2.给View设置属性
    view.backgroundColor = UIColor.red
    
    
    // 3.创建UIButton对象
    let btn : UIButton = UIButton()
    
    // 4.给btn设置属性
    // 4.1.设置btn的frame
    btn.frame = CGRect(x: 0, y: 0,  50, height: 50)
    
    // 4.2.设置btn的背景颜色
    btn.backgroundColor = UIColor.orange
    
    // 4.3.设置btn的文字(了解)
    // Swift枚举类型: 
    // 方式一: 如果可以根据上下文语法推断出该枚举的类型可以直接 .具体类型
    // 方式二: 上下文推断不出类型, 枚举类型.具体类型
    btn.setTitle("按钮", for: .normal)
    
    
    // 5.将btn添加到UIView中
    // 在swift中调用方法,统一使用 点语法
    view.addSubview(btn)
    

    类型推导

    1> 如果在定义一个标识符时,有直接给该标识符进行赋值. 那么可以将标识符后面的类型省略掉
    2> 编译器会根据我们后面赋值的类型,推导出前面标识符的类型, 这个过程就叫做类型推导
    3> 可以通过 option + 鼠标左键 来查看标识符的类型
    
    
          let a = 20
          var b = 2.44
    
          let view = UIView()
          let btn = UIButton()
          let m = 20
          let n = 10.5
    
          // let result = m + n 错误写法
          // 将Int类型转成Double: Double(标识符)
          // 将Double类型转成Int : Int(标识符)
          let result1 = Double(m) + n
          let result2 = m + Int(n)
    
    
          let a : Double = 2.44
          let b : CGFloat = 3.55
    
          let result = a + Double(b)
    

    OC的用法

              int a = 20
        
              if (a > 0) {
              }
    
              if (a) {
              }
    

    Swift中if和OC的区别

    1> if后面的()可以省略掉
    2> 没有非0(nil)即真 
        Bool(true/false)
    
    let a = 10
    
    if a > 0 {
        print("a大于0")
    }
    
    if a != 0 {
        print("a不等于0")
    }
    
    
    // else if的使用
    let score = 88
    
    if score < 0 || score > 100 {
        print("不合理的分数")
    } else if score < 60 {
        print("不及格")
    } else if score < 80 {
        print("及格")
    } else if score < 90 {
        print("良好")
    } else {
        print("优秀")
    }
    
    

    Switch-Case

    1.switch的基本使用
    1> switch()可以省略
    2> case结束可以不加break
    2.基本使用补充
    1> case后面可以跟上多个条件
    2> 如果希望产生case穿透,可以在case结束时fallthrough
    3.可以判断多种类型
    1> 浮点型
    2> 字符串
    3> 区间类型

    1.switch基本使用和OC的区别
    1> switch后面的()可以省略
    2> case语句结束时,可以不加break

    let sex = 1
    
    // sex 0 : 男  1 : 女
    switch sex {
    case 0:
        print("男")
    case 1:
        print("女")
    default:
        print("其它")
    }
    
    
    // 2.基本用法补充
    // 1> 在swift中,switch后面case可以判断多个条件
    // 2> 如果希望case结束时,产生case穿透.case结束时,加上fallthrough
    switch sex {
    case 0, 1:
        print("正常人")
        fallthrough
    //case 3:
    //    print("人妖")
    //    fallthrough
    default:
        print("非正常人")
    }
    
    
    // 3.switch判断其它类型
    // 3.1.判断浮点型
    let m = 3.14
    
    switch m {
    case 3.14:
        print("和π相等")
    default:
        print("和π不相等")
    }
    
    // 3.2.判断字符串
    let a = 20
    let b = 30
    let oprationStr = "*"
    var result = 0
    
    switch oprationStr {
    case "+":
        result = a + b
    case "-":
        result = a - b
    case "*":
        result = a * b
    case "/":
        result = a / b
    default:
        print("不合理的操作符")
    }
    
    
    // 3.3.判断区间类型
    /*
     区间
        1> 半开半闭区间 0~9 0..<10
        2> 闭区间 0~9 0...9
        错误写法 1~9 0<.<10
        正确写法 1~9 1..9/1..<10
     */
    
    let score = 88
    
    switch score {
    case 0..<60:
        print("不及格")
    case 60..<80:
        print("及格")
    case 80..<90:
        print("良好")
    case 90...100:
        print("优秀")
    default:
        print("不合理的分数")
    }
    // Swift中for循环现在只支持区间遍历
    // 0..<10/0...9
    for i in 0..<10 {
        print(i)
    }
    
    for i in 0...10 {
        print(i)
    }
    
    
    // 打印10次hello world
    // 在swift开发中,如果一个变量/常量暂停不会使用,那么可以使用_来代替
    for _ in 0..<10 {
        print("hello world")
    }
    

    关于循环

    OC中while循环

          int a = 0
           while (a < 10) {
            a++
         }
         while (a) {
     
         }
    

    swift中while循环和OC区别
    1> while后面()可以省略
    2> 没有非0(nil)即真 Bool(true/false)

    
    var m = -1
    while m < 10 {
        m += 1
        print(m)
    }
    
    
    repeat {
        m -= 1
        print(m)
    } while m > 0
    
    
  • 相关阅读:
    *Binary Tree Inorder Traversal
    First Unique Character in a String
    回溯法模板
    *Linked List Random Node
    *Odd Even Linked List
    *Maximum Product of Word Lengths
    Flatten 2D Vector
    Docker (dockerfile)
    Docker数据卷
    Docker入门
  • 原文地址:https://www.cnblogs.com/jiahao89/p/13612937.html
Copyright © 2020-2023  润新知