use*_*673 4 grammar perl6 canonicalization
Perl6标准语法相对较大.虽然这有助于表达一旦掌握,但它会对掌握产生障碍.例如,核心构造通常具有支持不同编程范例的多种形式.一个基本的例子是用于创建Pairs的各种语法:
Pair.new('key', 'value'); # The canonical way
'key' => 'value'; # this...
:key<value>; # ...means the same as this
:key<value1 value2>; # But this is key => <value1 value2>
:foo(127); # short for foo => 127
:127foo; # the same foo => 127
Run Code Online (Sandbox Code Playgroud)
请特别注意第一种形式的评论:"规范方式".
另一个例子是以下文档method make:
This is just a little sugar for $/.made = $ast which is a very common operation in actions.
Run Code Online (Sandbox Code Playgroud)
是否存在可以为Perl6程序输出的规范形式,以便在掌握了规范子语法后,可以检查该形式的任何Perl6程序以理解它?
我会说Perl6语法(尤其是烤肉)是正典,所以所有这些形式都是'规范'.该注释指的是在编译/执行任何其他表单时实际发生的情况.调用类的.new()方法Pair来创建新Pair对象.无论您使用哪种选项,都可以在幕后发生这种情况.其他语法只是表达相同内容的更简单方法.
您可能会发现该.perl()方法很有用.它将描述在Perl中表达任何变量的方式:
> Pair.new('key', 'value').perl
:key("value")
> ('key' => 'value').perl
:key("value")
> (:key<value>).perl
:key("value")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |