我正在尝试对使用以下代码引发异常的功能进行测试:

use v6;
use Test;

plan *;

use lib "lib";
use Math::ConvergenceMethods;

sub f ($x) {return $x + 1;}


{
    is-approx: bisection(&f, -2, 0), -1;
    dies-ok: { bisection(&f, 3, 2) }, "Incorrect arguments";
}

done-testing;

当我运行它时,它会返回以下警告:
WARNINGS for /home/antonio/Code/perl6/Math-ConvergenceMethods/t/bisection.t:
Useless use of "-" in expression "-1" in sink context (line 13)
Useless use of constant string "Incorrect arguments" in sink context (lines 14, 14)

我该如何解决?

最佳答案

形式的语句中的foo:

foo: ...

label,其中...是它标记的语句。

因此,您编写的语句与以下内容相同:
bisection(&f, -2, 0), -1;

这将-1保留在sink context中,因此出现错误消息。

(该消息有点LTA,因为您的错误显然是您认为标签语法是一个调用语法的函数,并且错误消息确实指示了错误-in sink context-Useless use of "-"是没有帮助的附加详细信息,可能添加到了你的困惑。)

另请参见What's the difference these two function calling conventions?

关于raku - 在接收器上下文中在表达式 "-"中无用 "-1"(第13行),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55161803/

10-09 08:26