Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie
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
  • Laatst online: 23:31

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: 29-03 13:27

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
  • Laatst online: 23:31

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


Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True