Perl6之十四 - switch

sunnavy
2006-12-05 16:20:29 +0000

Perl6将有``switch"语句,但keyword可不是switch和case,而是given和when。因为``switch"其实一种主题化(topicalizing,语言学里的概念)的方法。

e.g.

 given EXPR {
     when EXPR { ... }
     when EXPR { ... }
     default { ... }
 }

when后面跟的EXPR是smart match(更强大的模式匹配)。given block里并不要求全是when。

跟C语言的switch还有一个很大的不同:在满足一个条件,执行完对应的语句后就直接退出given block,而不是向下继续执行。(还记得在C语言的switch里我们要写多少break么?呵呵)。