为什么不能命名无符号变量v + digit?

问题描述

运行以下简单代码,检查无sigil变量的行为,会产生奇怪的错误:

use v6.d;  # Rakudo Star 2020.05.01 (Windows)

sub test ($p) {
    say $p;
}

my \v1 = 1;

say v1;   # v1 (ERROR)
test(v1); # v1 (ERROR)

my \v = 1;

say v;   # 1 (Correct)
test(v); # 1 (Correct)

my \vv1 = 1;

say vv1;   # 1 (Correct)
test(vv1); # 1 (Correct)

my \s1 = 1;

say s1;   # 1 (Correct)
test(s1); # 1 (Correct)

那是为什么?

解决方法

v开头,后跟数字(依次是点和其他数字)的文学被视为versions。这意味着您不能使用以v开头,后跟数字作为无符号标识符的任何内容。

say (v1.2.3).parts; # OUTPUT: «(1 2 3)␤» 

不过,这可能没有充分记载。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...