gpt4 book ai didi

使用元运算符进行测试不会打印测试描述

转载 作者:行者123 更新时间:2023-12-03 14:00:20 39 4
gpt4 key购买 nike

我正在编写复杂数组的测试,我使用的是 Z≅运算符来检查数组是否近似相等,当我注意到缺少测试描述时。
我试图对这段代码进行分析,以找出显示我所看到的结果的最简单的情况。即使我使用 Num 或 Int 变量和 Z== 在第二个测试中也缺少描述运算符(operator)。

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;

是否有一个简单的解释或者这是一个错误?

最佳答案

这只是优先级——你需要括号。
==是一个二进制操作,在任何一侧都需要一个操作数。
Z metaop 将其运算符分发到任一侧的列表。

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;

没有括号, 'description2'成为右侧列表的附加元素。每 the doc for Z :

If one of the operands runs out of elements prematurely, the zip operator will stop.

关于使用元运算符进行测试不会打印测试描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60917614/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com