2016-08-02 3 views
0

In Javascript würde ich so etwas tun:Verschachtelte Karten in Go

var funcName = function(param1, param2, param3) { 
    return { 
     arr: [ 
      {key1: param1, key2: param2} 
     ], 
     key2: param3 
    }; 
} 

Was wäre das Äquivalent in Go sein?

+0

Entspricht genau was genau? – JimB

+0

Um eine Funktion wie die obige zu schreiben @JimB – DelGiudice

+1

Jetzt macht es ein wenig mehr Sinn. Normalerweise würden Sie in Go einen zurückzugebenden Typ definieren. Können Sie zeigen, was Sie zu lösen versuchen? Sie können 'map [string] interface {}' und '[] interface {}' verwenden, aber das ist normalerweise nicht so nützlich. – JimB

Antwort

1

Hier ist eine direkte Übersetzung gehen:

var funcName = func(param1, param2, param3 interface{}) interface{} { 
    return map[string]interface{}{ 
    "arr": []interface{}{ 
     map[string]interface{}{"key1": param1, "key2": param2}, 
    }, 
    "key2": param3, 
    } 
} 

Wahrscheinlich gibt es einen besseren Weg, das eigentliche Problem erreichen Sie zu lösen versuchen.

1

Scheint, wie Sie versuchen, mit einem JSON, um am Ende die wie folgt aussieht:

{ 
    "arr": [{ 
     "key1": <param1>, 
     "key2": <param2> 
    }], 
    "key2": <param3> 
} 

Ist das korrekt? Wenn ja, es ist viel einfacher, in Show nur eine Datenstruktur zu definieren, die übereinstimmt, wie:

struct { 
    Arr []map[string]interface{} `json:"arr"` 
    Key2 interface{}    `json:"key2"` 
} 

Sie können dann Marschall direkt zu JSON mit dem in json Paket gebaut. Beispiel: https://play.golang.org/p/GE9DV1QeDC