Довольно новый для Go, но все еще не знаю, почему это не работает. Функция (A) определяется и передается в качестве аргумента другой функции (B), которая принимает аргументы A точно правильным образом (AFAIK):
// Function A
func writeToPumps(keys []interface{}, job *health.Job, startTime time.Time) {..}
// Function B
func GenerateDemoData(start time.Time, days int, orgId string, writer func(keys []interface{}, job *health.Job, startTime time.Time)) {...}
//calling Function B with Function A as last argument:
demo.GenerateDemoData(time.Now().AddDate(0, 0, -30), 30, buildDemoData, writeToPumps)
Что дает:
. / Main.go: 191: 56: нельзя использовать writeToPumps (тип func ([] interface {}, * "tyk-pump / vendor / github.com / gocraft / health". Job, time.Time)) как тип func ([] interface {}, * "github.com/TykTechnologies/tyk-pump/vendor/github.com/gocraft/health" .Job, time.Time) в аргументе для demo.GenerateDemoData
Как я могу это исправить?
EDIT
Раздел импорта в main.go
:
import (
"github.com/TykTechnologies/tyk-pump/analytics/demo"
"time"
"os"
"fmt"
"github.com/gocraft/health"
"gopkg.in/vmihailenco/msgpack.v2"
"github.com/TykTechnologies/logrus"
"github.com/TykTechnologies/logrus-prefixed-formatter"
"github.com/TykTechnologies/tyk-pump/analytics"
"github.com/TykTechnologies/tyk-pump/pumps"
"github.com/TykTechnologies/tyk-pump/storage"
"github.com/TykTechnologies/tykcommon-logger"
"gopkg.in/alecthomas/kingpin.v2"
)
Другая полезная информация:
ГОПАТ: /home/nilsnolde/dev/go/uni
Структура проекта:
../uni/src/
|
--tyk-pump/
|
--vendor/
main.go
...