2017-10-28 6 views
-1

나는 Golang의 "testing"패키지를 사용하여 테스트 케이스를 작성했습니다. 그리고 나는 배열과 함수 포인터를 테이블에 써야하는 상황을 보았습니다.struct in struct (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

이 선언이 비트를 참조되고 :

[]float64{2, 3} 

그래서 당신이 필요합니다 :

필요

{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

Kenny, 답변 해 주셔서 감사합니다. 나는 float ({1,2})를 시도해 왔고, 틀린 것을 생각하고있다! –

관련 문제