zoukankan      html  css  js  c++  java
  • 用givenwhen 构造switch语句

    1. 更少的输入

    use 5.010;
    given ($dog) {
      when ('Fido')      {}
      when ('Rover')     {}
      when ('Spot')      {}
      default            {} ;
    
    };

    2. 智能匹配

    use 5.010;
    
    $dog ~~  /$regex/      #dog 能被正则表达式匹配
    $dog ~~  %Dogs         #$dog 是%Dogs 中的键值
    $dog ~~ @Dogs          #$dog 是@Dogs 中的元素
    @Dogs ~~ /$regex/      #@Dogs中至少有一个元素与正则匹配
    %Dogs  ~~ /$regex/     #%Dogs 中至少有个一key与正则匹配

    3.多分在处理

    use 5.010;
    given ($dog) {
      when ('Fido')   { ...;break}
      when('Rover') {....;break}
      default           {...} ;
    };

    利用continue 语句,就可以使程序在当前when块运算后进入下一个when继续比较。

    4.代码组合

    可以在when之间自由输入任意代码,哪怕在中途修改主题变量也没问题

    use 5.010;
    
    my $dog = 'Spot' ;
    given ($dog) {
      say "I am ....." ;
      when  (/o/){  ;coninue}
      say "....";
       when (/t/) {..;coninue}
       $_=tr/p/d/;
      when (/d/) (..;coninue)
    
    
    };

    5.对列表进行分支判断

    在foreach 循环中我们也能用when,这和在given中相似,只不过它是依次从列表中取测试目标

    use 5.010;
    
    foreach (@array) {
      when (/....$/)  {}
      when (//..$)    {}
    }
  • 相关阅读:
    异常
    抽象类
    java基础—接口3
    java基础—接口2
    java基础—接口1
    Android拍照适配方案
    继承—Car
    继承—矩形
    使用CSS和jQuery实现tab页
    纯CSS实现圆形进度条
  • 原文地址:https://www.cnblogs.com/tjxwg/p/2955956.html
Copyright © 2011-2022 走看看