美文网首页
Swift二 一: 区间运算符 二: switch case语句

Swift二 一: 区间运算符 二: switch case语句

作者: 看谷秀 | 来源:发表于2022-04-12 18:50 被阅读0次

    一: 区间运算符
    二: switch case语句
    三: 函数 (内联函数 函数重载 嵌套函数)

    一 区间运算符
    let names = ["a", "b","c","d"]
    // 1 闭区间运算符
        for i in 0...3 {
          print(name[I])
        }
    
    // 2 半开区间运算符
    a..<b 代表  a<=值<b
        for i in 0..<3 {
          print(name[I])
        }
    
    // 3 单侧区间
    names[2...] // 2~3
    names[...2] // 0~2
    names[..<2] // 0~1
    
    // 4 区间变量
    let range = ...5 // -负无穷 到5
    range.content(7)  false // 判断是否包含7
    
    // 5区间可以是Int 也可以是字符串
    let range = "a"..."z"// 打印字符串, 注意没指定类型就是字符串
    
    // 6间隔区间符方法
    let hour = 11
    let hourInterval = 2
     从4开始 到11 间隔2
    for tickMark in stride(from: 4, through: hour, by:hourInterval) {
        print(tickMark)
    }
    // 打印  4 6 8 10
    
    二 switch case语句

    对比oc

    1 switch case语句不需要写break,也不会贯穿
    2 想要贯穿加fallthough
    3 不需要写{},但是case后最少要有一句
    4 所有case都处理了, 不需要加default
    5 default里面需要有break, 因为最少要有一句话, default也不例外

    基础用法


    截屏2022-04-12 下午3.58.14.png
    截屏2022-04-12 下午3.59.29.png
    截屏2022-04-12 下午4.01.18.png

    可以匹配区间 匹配元组


    截屏2022-04-12 下午4.08.00.png

    复合条件 就是case同时可以有多个条件, 支持string character


    截屏2022-04-12 下午4.08.40.png

    值绑定 外面的值case可以用


    截屏2022-04-12 下午4.11.14.png

    where case可以加条件 for循环也可以加条件


    截屏2022-04-12 下午4.14.23.png
    截屏2022-04-12 下午4.14.52.png
    截屏2022-04-12 下午4.14.56.png

    标签语句 ???


    截屏2022-04-12 下午4.18.22.png
    三: 函数

    函数定义
    Swift 定义函数使用关键字 func。
    定义函数的时候,可以指定一个或多个输入参数和一个返回值类型。
    每个函数都有一个函数名来描述它的功能。通过函数名以及对应类型的参数值来调用这个函数。函数的参数传递的顺序必须与参数列表相同。
    函数的实参传递的顺序必须与形参列表相同,-> 后定义函数的返回值类型。
    语法

    func funcname(形参) -> returntype
    {
       Statement1
       Statement2
       ……
       Statement N
       return parameters
    }
    

    隐式返回 就是函数体就一句不用写return了


    截屏2022-04-12 下午4.21.52.png

    返回元组 实现多返回值


    截屏2022-04-12 下午4.23.15.png

    函数文档注释


    截屏2022-04-12 下午4.25.00.png

    函数重命名, 省略


    截屏2022-04-12 下午4.28.52.png

    函数默认参数值


    截屏2022-04-12 下午4.30.45.png

    可变参数


    截屏2022-04-12 下午4.40.43.png
    截屏2022-04-12 下午4.47.42.png
    截屏2022-04-12 下午4.51.08.png

    输入输出参数 用inout 修改函数外面变量的值


    截屏2022-04-12 下午4.59.38.png
    NSString * str = @"哈哈";
    NSLog("内存地址:%p, 指针地址:%p", str, &str);
    

    函数重载 非重写
    规则 1 函数名相同, 2 参数个数不同/ 参数类型不同/参数标签不同


    截屏2022-04-12 下午6.39.15.png
    截屏2022-04-12 下午6.39.28.png

    函数重载注意点


    截屏2022-04-12 下午5.15.47.png

    内联函数 @inline 默认release模式就是开启内联函数

    func test(){
      print("哈哈")
    }
    test() 
    // 开启内联函数, 即test() 等价于调用 这句print("哈哈")
    调用函数时候直接执行了函数的函数体
    这样减少了调用函数的开销,开辟和回收栈空间
    
    截屏2022-04-12 下午5.20.54.png

    1 函数体比较长
    2 包含递归调用
    3 包含动态派发(oc调用)
    以上函数不会触发内联函数


    截屏2022-04-12 下午7.03.28.png

    函数类型 变量中的函数类型, 作为参数, 返回值

    截屏2022-04-12 下午5.37.37.png
    截屏2022-04-12 下午5.40.36.png
    截屏2022-04-12 下午5.42.42.png

    typealise 别名 用这个标识符重新起名字


    截屏2022-04-12 下午5.46.43.png

    嵌套函数


    截屏2022-04-12 下午5.48.42.png

    相关文章

      网友评论

          本文标题:Swift二 一: 区间运算符 二: switch case语句

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