我正在对复杂数组编写测试Z?,当我注意到缺少测试描述时,我正在使用运算符检查数组是否大致相等。
我试图对这段代码进行分析,以找出显示我所看到的结果的最简单的情况。即使我使用 Num 或 Int 变量和Z==运算符,第二个测试中也缺少描述。
use Test;
my @a = 1e0, 3e0;
my @b = 1e0, 3e0;
ok @a[0] == @b[0], 'description1'; # prints: ok 1 - description1
ok @a[^2] Z== @b[^2], 'description2'; # prints: ok 2 -
done-testing;
Run Code Online (Sandbox Code Playgroud)
是否有一个简单的解释或者这是一个错误?
这只是优先级——你需要括号。
==是一个二进制操作,在任何一侧都需要一个操作数。
该Zmetaop其经营者分配到一个列表上的两侧。
use Test;
my @a = 1e0, 3e0;
my @b = 1e0, 3e0;
ok @a[0] == @b[0], 'description1'; # prints: ok 1 - description1
ok (@a[^2] Z== @b[^2]), 'description2'; # prints: ok 2 - description2
done-testing;
Run Code Online (Sandbox Code Playgroud)
没有括号,'description2'成为右侧列表的附加元素。根据文档Z:
如果其中一个操作数过早用完元素,则 zip 运算符将停止。
| 归档时间: |
|
| 查看次数: |
45 次 |
| 最近记录: |