zoukankan      html  css  js  c++  java
  • 添加模式匹配

    自定义语言的一个好处就是可以随时添加自己喜欢的语法,今天就给自己的语法加了个类似模式匹配的语法。

    语法本身采用了相对比较容易阅读的方式来组织,例如:

    (*(
      [$a, $b, $c]
      [1,  1,  'Y''yes!']
      [1,  1,  'N''no!']
      [2,  ?,  ?  : 'something wrong!']
      [?,  ?,  ?  : 'op...']
    )*)

    第一行,代表开始这一串语法

    第二行,分别取a,b,c三个变量的值

    第三行,如果三个变量的值为1,1,'Y',则返回'yes'

    第四行,语义同上

    第五行,如果第一个变量为2,另外两个变量的值任意,则返回'something wrong!'

    第六行,如果之前的条件均不满足,则返回'op...'

    第七行,代表这串语法的结束


    简单的理解的话就是相当于:

    if ($a==1 and $b==1 and $c=='Y')
      return 'yes!';
    else if ($a==1 and $b==1 and $c=='N')
      return 'no!';
    else if ($a==2)
      return 'something wrong!';
    else
      return 'op...';


    新语法更加简单明了,在排版良好的前提下也更容易看出语义

  • 相关阅读:
    struts2 标签
    Ubutu命令 笔记积累
    虚拟机VirtualBox和Ubutu
    更新PostgreSQL数据
    向PostgreSQL插入数据
    PostgreSQL表依赖性跟踪
    PostgreSQL外部数据
    PostgreSQL分区介绍
    PostgreSQL继承详解
    PostgreSQL模式介绍
  • 原文地址:https://www.cnblogs.com/vwxyzh/p/2433042.html
Copyright © 2011-2022 走看看