Barewords可以在Pair声明的左侧使用(这还没有记录,我现在正在解决这个问题,但我希望一切正确).但是,我还没有找到什么是什么,什么不会被认为是任何地方的裸字密钥.
这似乎有效
say (foo'bar-baz => 3); # OUTPUT: «foo'bar-baz => 3?»
Run Code Online (Sandbox Code Playgroud)
事实并非如此
say (foo-3 => 3); # OUTPUT: «(exit code 1) ===SORRY!=== Error while compiling /tmp/jorTNuKH9V?Undeclared routine:? foo used at line 1??»
Run Code Online (Sandbox Code Playgroud)
所以它显然遵循与普通标识符相同的语法.那是对的吗?我在这里错过了什么吗?
Jon*_*ton 10
Perl 6中没有裸字,因为它们存在于Perl 5中,而且该术语在Perl 6中根本没有使用.
我们可以将两种情况称为"裸标识符":
\h*),后跟字符=>.这将左侧的标识符作为成对键,并将该术语=>作为对值进行解析.这是一个完全语法决定; 例如,具有该标识符的子或类型的存在将不会产生任何影响.这两种情况只是在它们都是termPerl 6语法中的s的情况下相关,并且它们都希望解析a identifier,它遵循问题中链接的标准规则.哪个胜利由最长令牌匹配语义决定; 的限制,有可能只标识符之间的水平空白和=>存在以确保标识符,空格,和=>将一起被算作声明前缀,因此壳体1将总是战胜壳体2.
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |