运行“ go build”命令时出现错误“对s.statsd.SendLoop的调用中的参数不足”

时间:2019-04-23 13:05:13

标签: hyperledger-fabric hyperledger-fabric-sdk-go

我正在尝试为我的项目运行go build命令,但它退出并显示以下错误。

import java.time.DayOfWeek;
import java.time.LocalDate;

public class Deadline {

    private LocalDate deadline;

    public Deadline(LocalDate DeadLine) {
        this.deadline = DeadLine;
    }

    public LocalDate getDeadline() {
        return deadline;
    }

    public void setDeadline(LocalDate deadline) {
        this.deadline = deadline;
    }

    public static void main(String[] args){
        Deadline first = new Deadline(LocalDate.parse("2017-02-03"));
        System.out.println(first);
        }
}

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

根据每个代码结构,正在使用该库的不同版本:github.com/go-kit/kit/metrics/statsd。如果遵循System结构的statsd属性,则可以获取有关导入的参考。

在此库的master分支中,SendLoop函数需要 4 个属性,这就是根本原因。因此,在本地环境上编译时会导致错误。

我遇到了同样的问题,并通过签出一个库标签来解决此问题,如下所示:

cd $GOPATH/src/github.com/go-kit/kit
git fetch --tags
git checkout v0.8.0

答案 1 :(得分:1)

在hyperledger-fabric-go-sdk群聊中找到了一个解决方案。

context.Background()中添加s.statsd.SendLoop,如下所示

s.statsd.SendLoop(context.Background(), s.sendTicker.C, network, address)

fabric-sdk-go/internal/github.com/hyperledger/fabric/core/operations/system.go文件中的第227行。