标题:
Perl6 vs Perl5 之我见(2)
[打印本页]
作者:
look_w
时间:
2018-6-18 12:33
标题:
Perl6 vs Perl5 之我见(2)
操作符拼接Perl6 中使用~进行字符串的拼接,如:
字符串拼接my Int $num = 5;my Str $str = “I have “ ~ $foo ~ “ chapters to write”;say $str; //这里~会将 5 转换为 string 再拼接输出:
I have 5 chapters to write匹配Perl6 的字符串匹配使用~~,如:
字符串匹配“c” ~~ /c/; # 返回 true, 字符”c” 匹配正则表达式/c/控制结构格式Perl6 中的控制符关键字后必须有空格,否则会被解析为函数,如:
控制体格式if($x<5) { //错误,会调用 if 函数}if ( $x <5) { //正确}given/whenPerl6 引入新的控制体 Given/When,它类似 c 语言中的 switch/case,如:
given/when 用法given $guess {when 10 { say ‘$guess is the number 10’; }when “hello” { say ‘$guess is the string “hello”’; }when Bool { say ‘$guess is the _oolean quantity ‘ ~ $guess; }}以上的代码会将 guess 变量先匹配 10,如果不是,再匹配”hello”,最后判断是否是布尔类型。
for /loop在 Perl 5 中,提供了 foreach 的关键字,当然您也能写成 for 的关键字来实现象 C 风格的循环。在 Perl 6 中,这些全都改变了。现在 for 是专用来进行列表的迭代。foreach 就不再使用了,如:
for 用法for 1, 2, 3, 4 { .say }这是一个最简单清晰的语法的例子。在这并没有使用括号来包起整个列表的语句,像这种写法可以贯穿整个 Perl 6.。通常比起 Perl 5 来您没有必要写那么多的括号了。这个循环中的值会默认存到 $_ 。在这个方法调用的 say 其实就是 $_.say,注意在 Perl 6 中,您不能直接只打一个 say 的调用而不加参数,默认情况下会使用 $_ 来传参,您需要使用 .say ,要么明确的指定是 $_。
而那个 C 风格的循环处理使用了新的关键字 loop,如:
loop 用法loop (my $i = 1; $i<= 10; $i++) {print $i;}repeat/whilePerl6 引入了 repeat/while 控制体,相当于 c 语言中的 do/while,如:
repeat/while 用法My $n = 3;repeat {say $n;} while $n <3;以上代码会执行循环体一次。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0