Go ist eine streng typisierte Sprache, daher gibt es keine eval-Anweisung, die Daten direkt in Code umwandelt. In diesem Fall, zu dem Sie gefragt haben, dass Ihre Liste von Listen in einem Format ist, das mit dem JSON-Format kompatibel ist, dachte ich daran, das JSON-Paket zu verwenden, um das Parsing durchzuführen. Es sind also nur drei Codezeilen erforderlich, die den Typ der erwarteten Daten definieren, den Decoder aus der Zeichenfolge erstellen und den Decoder auf den Datentyp anwenden. Die Tatsache, dass Go streng typisiert ist, aber Reflektion unterstützt (was Sie in diesem Code nicht sehen werden), hat mich etwas gewöhnungsbedürftig gemacht. Reflektion macht die dritte Zeile möglich und warum die erste Zeile die Variable als eine Liste von Listen definiert ([] [] int).
package main
import (
"encoding/json"
"fmt"
"strings"
)
// Prints:
// <nil> [[0 1] [0 2] [0 3]]
// 0 0 0
// 0 1 1
// 1 0 0
// 1 1 2
// 2 0 0
// 2 1 3
func main() {
jsonstring := "[[0, 1], [0, 2], [0,3 ]]"
var listoflists [][]int
dec := json.NewDecoder(strings.NewReader(jsonstring))
err := dec.Decode(&listoflists)
fmt.Println(err, listoflists)
for i, list := range listoflists {
for j, value := range list {
fmt.Println(i, j, value)
}
}
}
Mögliche Duplikat [Parsing explizite Arrays] (http://stackoverflow.com/questions/40333562/parsing-explicit-arrays/40333763#40333763). – icza
Danke, ich bin neu in Go, also habe ich kein explizites Verständnis darüber, wie man Dinge umwandelt. – gentlyawesome
Betrachten Sie die [Tour of Go] (https://tour.golang.org/), die ziemlich schnell durch die meisten Sprachen geht, einschließlich der Grundlagen wie mit Arrays und Strings arbeiten. – nothingmuch