Swift GG__2

Posted 知直只志的妙妙屋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift GG__2相关的知识,希望对你有一定的参考价值。

  • for-in:遍历一个集合里面所有的元素

  • 数字范围:

    • 闭区间操作符( ... ),eg.   for index in 1...5 {  statement  }

    • 半开区间操作符(  ..<  ),  eg.  for index in 0..<5 {  statement  }

    • 单侧区间操作符(  1...  ),  eg.  for index in array[1...]{  statement  }

  • 自定义index的增量:

let minuteInterval = 5for tickMark in stride(from: 0, to: minutes, by: minuteInterval) { // 5分钟为增量(0, 5, 10, 15 ... 45, 50, 55)}
  • switch语句里面每一个case分支都必须包含至少一条语句

  • case分支的模式也可以是一个值的区间

  • swift中switch的各个case不需要break识别到一个case就跳出switch块;如果需要继续识别,可以用fallthrough贯穿。

  • 可以使用元组在一个switch语句中同时测试多个值,元组中的元素可以是区间;下划线  _  匹配所有可能的值

  • 值绑定Value Bindings:case 分支允许将匹配的值声明为临时常量或变量,并且在 case 分支体内使用。匹配的值与临时的常量或变量绑定。

  • case 分支的模式可以使用 where 语句来判断额外的条件。

  • 五种控制转移语句:

    • continue:停止本次循环,开始下一次循环

    • break:提前结束循环或switch

    • fallthrough:不会检查下一个case的条件,简单的让代码连接到下一个case中的代码

    • return

    • throw

  • 带标签的语句:在该语句的关键词的同一行前面放置一个标签,作为这个语句的前导关键字(introducor keyword),并且该标签后面跟随一个冒号。

    label name: while condition { statements }
  • 可以显式指明需要continue或break哪一条语句

  • guard:后面必须跟else。类似断言,要求跟随其后的条件必须为真,否则执行else内容。只是为了提高程序可读性

  • 检查API可用性:

if #available(ios 10, macOS 10.12, *) { // 在 iOS 使用 iOS 10 的 API, 在 macOS 使用 macOS 10.12 的 API} else { // 使用先前版本的 iOS 和 macOS 的 API}
  • 参数列表前面几个是最小的版本号,最后一个参数*是必须的。





  • 函数也可以作为参数:可以定义一个类型为函数的常量或变量,并将适当的函数赋值给它;

var mathFunction: (Int, Int) -> Int = addTwoInts// 可以像平常的常量或变量那样传入到参数列表里面
  • 嵌套函数对外界不可见,只能被外围函数调用;但如果外围函数返回的是嵌套函数,那么其他域就可以调用这个嵌套函数








  • 闭包:自包含的函数代码块,可以在代码中被传递和使用。(类似lambda)

  • 包裹常量和变量:可以捕获和存储上下文中任意常量变量的引用

{ (parameters) -> returnType in statements}
  • 尾随闭包是一个书写在函数圆括号之后的闭包表达式,函数支持将其作为最后一个参数调用。在使用尾随闭包时,不用写出它的参数标签。闭包作为唯一参数时圆括号也可以省略

  • 值捕获  // TODO

  • 闭包是引用类型:把函数或闭包传递给常量变量,实际上是传递了引用类型;因此赋值给多个变量,他们指向的也是同一个闭包

  • 逃逸闭包:把一个闭包作为参数传到一个函数中,但是这个闭包在函数返回之后才被执行的闭包。通过在参数名前标注@escaping

  • 逃逸闭包内需要显式引用self(xcode推荐,内存循环)

  • 闭包不熟,要多练习





  • 枚举:为一组相关的值定义一个共同的类型。保证类型安全。每个枚举都是一个全新的类型

  • 枚举成员在被创建时不会被赋予一个默认的整型值

  • 关联值:枚举成员关联的值     case memberName(variables)

  • 原始值:与默认值类似   case memberName=variable

  • 原始值可以像其他语言的默认整型值那样实现隐式原始值

  • 递归枚举:在枚举成员前加上indirect  ;存储算术表达式,计算出枚举成员

以上是关于Swift GG__2的主要内容,如果未能解决你的问题,请参考以下文章

Swift GG__3

VSCode 配置 用户自定义代码片段 自定义自动代码补充

类的实例化过程

2020MRCTF

swift闭包_002_swift闭包

GG运行脚本出错,求助各路大神解惑!~!~