Während der letzten Übung der Tour of Go entschied ich, dass ich eine Warteschlange mit ( string
, int
) Paaren brauchte . Das ist einfach genug:
type job struct {
url string
depth int
}
queue := make(chan job)
queue <- job{url, depth}
Aber das brachte mich zum Nachdenken: Gibt es in Go integrierte Pair / Tuple-Datentypen? Es gibt Unterstützung für die Rückgabe mehrerer Werte von einer Funktion, aber AFAICT, die produzierten Tupel mit mehreren Werten, sind keine erstklassigen Bürger im Go-Typsystem. Ist das der Fall?
Was den Teil "Was hast du versucht" betrifft, die offensichtliche Syntax (aus dem POV eines Python-Programmierers)
queue := make(chan (string, int))
hat nicht funktioniert.
Sie könnten so etwas tun, wenn Sie wollten
Ich denke jedoch, dass das, was Sie bereits haben, vollkommen idiomatisch ist und die Struktur Ihre Daten perfekt beschreibt, was ein großer Vorteil gegenüber der Verwendung einfacher Tupel ist.
quelle