2016-11-11 1 views
-1

나는 이동에 대단히 newb 그리고 난이 일반적 측면과 기능을 구축하기 위해 노력하고있어 :배열 배열의 특정 위치 유형은 무엇입니까?

mapOfResults = ThingDoer([ 
    ["One", int, -1, true], 
    ["Flying", string, "", true], 
    ["Banana", bool, false, true] 
]) 

을하지만 심지어 서명 (이동에 심지어 적절한 용어 서명입니다 알아낼 수 없습니다 ? 모든 매개 변수의 정의 등).

나는이 구조에 대해서 이야기하고 :

func ThingDoer(config ThisIsWhatICannotFigure) map[string]Results { 
    // the body of my function 
} 

어떻게 이러한 매개 변수의 유형을 정의 하는가?

답변

2

이 시도 :

type ConfigItem struct { 
    Name string 
    Value interface{} 
    SomethingElse bool 
} 

mapOfResults = ThingDoer([]ConfigItem{ 
    {"One", -1, true}, 
    {"Flying", "", true}, 
    {"Banana", false, true}, 
}) 

ThingDoer는 값 유형을 결정하기 위해 type switch를 사용할 수 있습니다

func ThingDoer(config []ConfigItem) map[foo]bar { 
    for _, item := range config { 
     switch v := item.Value.(type) { 
     case int: 
     // v is int 
     case bool: 
     // v is bool 
     case string: 
     // v is string 
     } 
    } 
} 

playground example

+0

작품을 나를 위해! 분명히 나는 ​​당신의 대답을 받아들이 기 위해 약간 기다려야 만한다. 감사! –

관련 문제