2017-10-28 1 views
-1

Ich habe Testfälle mit "Test" -Paket von Golang geschrieben. Und ich bin auf eine Situation gestoßen, in der ich Array- und Funktionszeiger in eine Tabelle schreiben muss.Schreiben Array in struct (Golang)

Ich habe versucht folgend:

type myFunctionType func([]float64, []float64) float64 
var testMatrix = []struct { 
    dataX []float64 
    dataY []float64 
    result float64 
    myFunction myFunctionType 
} { 
{ {2, 3}, {8, 7}, 1, doMagicOne}, 
    {2, 3}, {8, 7}, 1, doMagicTwo}, 
} 

Aber jedes Mal, wenn ich sonst folgende Fehler oder etwas am Ende immer:

missing type in composite literal

Jede Eingabe in der oben? Danke im Voraus.

Antwort

2

Der Fehler, den Sie melden, wird durch das Fehlen einer Deklaration des Typs vor den Arrays in Ihrem Array verursacht. Der Fehler:

missing type in composite literal

auf dieses Bit Ihrer Erklärung Bezieht:

{2, 3} 

, die den Typ des Arrays angeben muss:

[]float64{2, 3} 

So brauchen Sie:

var testMatrix = []struct { 
    dataX  []float64 
    dataY  []float64 
    result  float64 
    myFunction myFunctionType 
}{ 
    {[]float64{2, 3}, []float64{8, 7}, 1, doMagicOne}, 
    {[]float64{2, 3}, []float64{8, 7}, 1, doMagicTwo}, 
} 

https://play.golang.org/p/AguxDJ11HS

+0

Kenny, Danke für die Antwort. Ich habe versucht [] float ({1,2}) und denke was falsch ist! –