我正在尝试对使用以下代码引发异常的功能进行测试:
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/