在接收器上下文中(第13行)在表达式“ -1”中无用的“-”

Ant*_*ado 5 perl6

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

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;
Run Code Online (Sandbox Code Playgroud)

并且在我运行它时返回以下警告:

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)
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

rai*_*iph 7

foo形式的声明:

foo: ...
Run Code Online (Sandbox Code Playgroud)

是一个标签,其中...是所标记的语句。

因此,您编写的语句与:

bisection(&f, -2, 0), -1;
Run Code Online (Sandbox Code Playgroud)

这将-1在接收器上下文中保留错误消息。

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

另请参见这两个函数调用约定有什么区别?