2017-10-28 14 views
-1

私はGolangの "testing"パッケージを使ってテストケースを書いています。そして、私は配列と関数ポインタをテーブルに書く必要がある状況に出くわしました。struct in Golang

私は、次の試してみました:

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}, 
} 

しかし、私はエラーまたは他の何か以下になってしまうたび:

missing type in composite literal

上記で任意の入力?前もって感謝します。

答えて

2

報告しているエラーは、配列内の配列の前に型の宣言がないことが原因です。エラー:

missing type in composite literal

はあなたの宣言のこのビットを参照している:配列の型を指定する必要があり

{2, 3} 

[]float64{2, 3} 

だから、あなたが必要とする:

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

ケニー、答えをありがとう。私はフロート({1,2})をしようとしており、何が間違っているのか考えています! –