Toon posts:

Eerste stapjes met Golang..

Pagina: 1
Acties:

Vraag

Hi Tweakers,

Ik ben m'n eerste stapjes aan het zetten met GoLang en omdat ik graag wat dingen naar Datadog zou sturen als test gebruik ik deze module : https://github.com/zorkian/go-datadog-api

Ik wil dus een metric versturen en dacht dat dit zou moeten werken :

code:
1
2
3
4
5
client := datadog.NewClient("f66eaa80d4fb8158981e1aa4a42df01c", "310936040a10a57d676869d0dc7bdc8b630b402c")
    host := "testdennis"
var test datadog.Metric
    test.SetHost(host)
metric := client.PostMetrics(test)


Maar vervolgens krijg ik onderstaande fout :
./main.go:20:30: cannot use test (type datadog.Metric) as type []datadog.Metric in argument to client.PostMetrics
Ik heb al van alles geprobeerd om dit probleem te fixen maar ik snap niet wat er nu exact mis gaat. Dus ik hoop dat er hier iemand is die mij even de goede richting op wil verwijzen :)

Alvast bedankt!! :>

Beste antwoord (via DennusB op 11-06-2020 20:51)


  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

DennusB schreef op donderdag 11 juni 2020 @ 20:01:
[...]


Ze verwachten toch gewoon een slice? Dan zou dit toch gewoon moeten werken :

Go:
1
2
3
4
5
var test datadog.Metric
    test.SetHost(host)
    test.SetMetric("test.metric")
    fmt.Println(*test.Host)
    metric := client.PostMetrics(test)


Volgens mij gaat er ergens iets bij de conversie niet goed?
Een slice is niets meer dan een lijst van dynamische grootte. De test die je in PostMetrics stopt is een enkel datadog.Metric, maar hij verwacht een lijst van datadog.Metric en een enkel element word niet automatisch omgezet naar een lijst met 1 element er in.
webfreakz.nl schreef op donderdag 11 juni 2020 @ 20:22:
Kan je het als volgt eens proberen?
Go:
1
2
3
4
5
6
7
8
9
var test datadog.Metric
test.SetHost(host)
test.SetMetric("test.metric")
fmt.Println(*test.Host)

var items []datadog.Metric
append(items, test)

metric := client.PostMetrics(items)
ik zou
Go:
1
append(items, test)
veranderen in
Go:
1
items = append(items, test)
, omdat de append functie de variabele zelf niet veranderd, maar een kopie van de lijst terug geeft met daar aan toegevoegd test.

Alle reacties


  • triet
  • Registratie: Januari 2003
  • Niet online
Volgens mij wordt er een array verwacht in PostMetrics en geef je een enkele metric op.
triet schreef op donderdag 11 juni 2020 @ 19:52:
Volgens mij wordt er een array verwacht in PostMetrics en geef je een enkele metric op.
Ze verwachten toch gewoon een slice? Dan zou dit toch gewoon moeten werken :

code:
1
2
3
4
5
var test datadog.Metric
    test.SetHost(host)
    test.SetMetric("test.metric")
    fmt.Println(*test.Host)
    metric := client.PostMetrics(test)


Volgens mij gaat er ergens iets bij de conversie niet goed?

  • webfreakz.nl
  • Registratie: November 2003
  • Laatst online: 28-08-2022

webfreakz.nl

el-nul-zet-é-er

Kan je het als volgt eens proberen?
code:
1
2
3
4
5
6
7
8
9
var test datadog.Metric
test.SetHost(host)
test.SetMetric("test.metric")
fmt.Println(*test.Host)

var items []datadog.Metric
append(items, test)

metric := client.PostMetrics(items)

"You smell that, son? What sir? Napalm, I love the smell of napalm in the mornin!" || Children of Bodom fan!


Acties:
  • Beste antwoord
  • +3Henk 'm!

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

DennusB schreef op donderdag 11 juni 2020 @ 20:01:
[...]


Ze verwachten toch gewoon een slice? Dan zou dit toch gewoon moeten werken :

Go:
1
2
3
4
5
var test datadog.Metric
    test.SetHost(host)
    test.SetMetric("test.metric")
    fmt.Println(*test.Host)
    metric := client.PostMetrics(test)


Volgens mij gaat er ergens iets bij de conversie niet goed?
Een slice is niets meer dan een lijst van dynamische grootte. De test die je in PostMetrics stopt is een enkel datadog.Metric, maar hij verwacht een lijst van datadog.Metric en een enkel element word niet automatisch omgezet naar een lijst met 1 element er in.
webfreakz.nl schreef op donderdag 11 juni 2020 @ 20:22:
Kan je het als volgt eens proberen?
Go:
1
2
3
4
5
6
7
8
9
var test datadog.Metric
test.SetHost(host)
test.SetMetric("test.metric")
fmt.Println(*test.Host)

var items []datadog.Metric
append(items, test)

metric := client.PostMetrics(items)
ik zou
Go:
1
append(items, test)
veranderen in
Go:
1
items = append(items, test)
, omdat de append functie de variabele zelf niet veranderd, maar een kopie van de lijst terug geeft met daar aan toegevoegd test.
Gropah schreef op donderdag 11 juni 2020 @ 20:39:
[...]

Een slice is niets meer dan een lijst van dynamische grootte. De test die je in PostMetrics stopt is een enkel datadog.Metric, maar hij verwacht een lijst van datadog.Metric en een enkel element word niet automatisch omgezet naar een lijst met 1 element er in.


[...]


ik zou
Go:
1
append(items, test)
veranderen in
Go:
1
items = append(items, test)
, omdat de append functie de variabele zelf niet veranderd, maar een kopie van de lijst terug geeft met daar aan toegevoegd test.
Duidelijk verhaal. Dankjewel voor de uitleg. Met je change werkt het nu zo te zien wel _/-\o_
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee