• 赋值和算术运算符


    赋值和算术运算符

    • 基本概念

      • 一元运算符对一个目标进行操作。一元前缀运算符(如 !b),一元后缀运算符(b!)。

      • 二元运算符对两个目标进行操作(比如 a + b )同时因为它们出现在两个目标之间,所以是中 缀。

      • 三元运算符操作三个目标。Swift 语言也仅有一个三元运算符,三元条件运算符( a ? b : c )。

      • 标准算术运算符 + - * / 加法运算符同时也支持 String 的拼接

      • 余数运算符( a % b )正负号会被忽略掉,这意味着 a % b 与 a % -b 能够获得相同的结果

    • 合并空值运算符

      • 合并空值运算符( a ?? b )如果可选项 a 有值则展开,如果没有值,是 nil ,则返 回默认值 b 。实际上是三元运算符作用到 Optional 上的缩写(a != nil ? a! : b

      • 表达式 a 必须是一个可选类型。表达式 b 必须与 a 的储存类型相同。

    • 区间运算符

      • 闭区间运算符( a...b )定义了从 a 到 b 的一组范围,并且包含 a 和 b 。a 的值不 能大于 b 。 image

      • 半开区间运算符( a..<b )定义了从 a 到 b 但不包括 b 的区间。 image

      • 单侧区间,闭区间有另外一种形式来让区间朝一个方向尽可能的远, 半开区间运算符同样可以有单侧形式,只需要写它最终的值

    image

    循环控制

    • for-in 循环遍历序列,比如一个范围的数字,数组中的元素或者字符串中的字符。 image

    • for-in 遍历字典。当字典遍历时,每一个元素都返回一个 (key, value) 元组,你可以在 for-in 循环体中使用显 式命名常量来分解 (key, value) 元组成员。 image

    • for-in如果你不需要序列的每一个值,你可以使用下划线来取代遍历名以忽略值。 image

    • for-in 分段区间

      • 使用 stride(from:to:by:) 函数来跳过不想要的标记 (开区间)。

      • 闭区间也同样适用,使用 stride(from:through:by:) 即可。

    image

    • repeat-while 循环 image

    switch流程控制

    • switch 语句会将一个值与多个可能的模式匹配。然后基于第一个成功匹配的模式来执行合适的 代码块。

    • switch 语句一定得是全面的。就是说,给定类型里每一个值都得被考虑到并且匹配到一个 switch 的 case。如果无法提供一个 switch case 所有可能的值,你可以定义一个默认匹配所有 的 case 来匹配所有未明确出来的值。这个匹配所有的情况用关键字 default 标记,并且必须在 所有 case 的最后出现。

    • 整个 switch 语句会在匹配到第一个 switch 的 case 执行完毕之后退出,不再需要显式 的 break 语句。

    image

    • 每一个 case 的函数体必须包含至少一个可执行的语句。在一个 switch 的 case 中匹配多个值可以用逗号分隔,并且可以写成多行。

    image

    • switch 的 case 的值可以在一个区间中匹配 image

    • switch 的 case 元组匹配 image

    • switch 的 case值绑定

      • switch 的 case 可以将匹配到的值临时绑定为一个常量或者变量,来给 case 的函数体使用。

      • 如果使用 var 关键字,临时的变量就会以合适的值来创建并初始化。对这个变量的任何改变 都只会在 case 的函数体内有效。

    image

    • switch复合匹配 - 值绑定

      • 复合匹配同样可以包含值绑定。所有复合匹配的模式都必须包含相同的值绑定集合,并且复合 情况中的每一个绑定都得有相同的类型格式。这才能确保无论复合匹配的那部分命中了,接下 来的函数体中的代码都能访问到绑定的值并且值的类型也都相同。

    image

    • switch case 可以使用 where 分句来检查是否符合特定的约束

    image

    • 控制转移

      • continue 告诉循环停止正在做的事情并且再次从头开始循环的下一次遍历。它是说“我 不再继续当前的循环遍历了”而不是离开整个的循环。

      • break 会立即结束整个控制流语句。当你想要提前结束 switch 或者循环语句或者其他情 况时可以在 switch 语句或者循环语句中使用 break 语句。 当在循环语句中使用时,break 会立即结束循环的执行,并且转移控制到循环结束花括号 ( } )后的第一行代码上。当前遍历循环里的其他代码都不会被执行,并且余下的遍历循环也 不会开始了。 当在 switch 语句里使用时, break 导致 switch 语句立即结束它的执行,并且转移控制到 switch 语句结束花括号( } )之后的第一行代码上。

      • fallthrough 贯穿行为,你可以选择在 switch 每个 case 末尾 使用 fallthrough 关键字。 image

      • return throw

    • guard

    guard 语句,类似于 if 语句,基于布尔值表达式来执行语句。使用 guard 语句来要求一个条 件必须是真才能执行 guard 之后的语句。与 if 语句不同,guard 语句总是有一个 else 分句 —— else 分句里的代码会在条件不为真的时候执行。

    image

  • 相关阅读:
    [D3] 4. d3.max
    [D3] 3. Scaling Basics
    [D3] 2. Basics of SVG
    [PHP] find ascii code in string
    [PHP] csv to xml
    [AngularJS] angular-formly: Extending Types
    [R] Draw a wordcloud
    [AngularJS] Error: $location:nobase
    [Whole Web] [Node.js, PM2] Controlling runaway apps using pm2
    Runoob-Java-高级教程-实例-环境设置实例:3.Java 实例
  • 原文地址:https://www.cnblogs.com/liuxiaokun/p/12684671.html
Copyright © 2020-2023  润新知