为什么我不能命名一个无符号变量 v+digit?
Why can't I name a sigilless variable v+digit?
运行 下面的简单代码检查了无符号变量的行为,产生了一个奇怪的错误:
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)»
虽然这可能没有充分记录...
运行 下面的简单代码检查了无符号变量的行为,产生了一个奇怪的错误:
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)»
虽然这可能没有充分记录...