• Swift中switch比较元组类型

    发布:51Code 时间: 2017-04-25 16:00

  • 元组作为多个值的表示方式也可以在switch中进行比较。Switch中使用元组非常灵活,字段可以是普通值,也可以是范围。 示例代码如下: 1 | let point = (0,1) 2 | switch point{ 3 | case (0,0): print(点...

  • 元组作为多个值的表示方式也可以在switch中进行比较。Switch中使用元组非常灵活,字段可以是普通值,也可以是范围。

           示例代码如下:

      1 |  let point = (0,1)
             2 |  switch point{
             3 |  case (0,0): print("点在原点")
             4 |  case(_,0): print("点在x轴")
             5 |  case(0,_):print("点在y轴")
             6 |  default: print("点在其他位置")
             7 |  }

    输出结果如下: 点在y轴

           在switch中使用元组还可以使用值绑定和where语句。

           
1.值绑定

           使用元组的时候还可以在case分支中分配的值绑定到一个临时的常量或变量,这些常量或变量能够在该分支里使用,这就称为值绑定。

           示例代码如下:

      1 |  let point = (1,1)
             2 |  switch point{
             3 |  case (let x, 0):
             4 |      print("这个点在x轴,x值是\(x)")
             5 |  case (0,let y):
             6 |      print("这个点的y轴,y值是\(y)")
             7 |  case let (x,y):
             8 |      print("这个点的x值是\(x)","这个点的y值是\(y)")
             9 |  }

    输出结果:这个点的x值是1 这个点的y值是1

           本示例还是关于点的坐标问题,其中第3行代码中的let x就是值绑定,我们在case中声明了一个x的常量,然后x常量就可以在该分支中使用了。在第7行case let(x,y),使用了值绑定的x。这里所有情况都包含完,可以不用default,只要所有的情况都包含就可以。

           2. where

           在绑定定值的情况下,还可以在case中使用where语句,来增加判断的条件,类似于SQL语句中的的where子句。

           示例代码如下:

      1 |  let point = (1,1)
             2 |  switch point{
             3 |  case let(x,y) where x == y:
             4 |      print("x==y")
             5 |  case let(x,y) where x == -y:
             6 |      print("x==-y")
             7 |  default:
             8 |      print("x和y没有直接关系")
             9 |  }

    输出结果如下: x==y

           上述例子是在值绑定的基础上,使用where语句进行条件判断。代码第3行中的let (x,y)就是值绑定,然后我们在case后面使用了where x == y,过滤元组x不等于y的字段。

  • 上一篇:Swift的控制转移语句—continue语句

    下一篇:Swift控制转移语句—break语句

网站导航
Copyright(C)51Code软件开发网 2003-2018 , 沪ICP备16012939号-1