2016-11-11 8 views
-1

私は行くには非常に多くの初心者くさいだと私は、この一般的な態様で機能構築しようとしています:配列の配列の特定の位置の種類は?

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

をしかし、私もその署名を(ゴーでそれのためにも適切な用語署名であることは理解できません?すべてのparamsの定義など)。

私は、この構造について話している:

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

作品を私のために!どうやら私はあなたの答えを受け入れるために少し待たなければならない。ありがとう! –

関連する問題