Wykonując ostatnie ćwiczenie Tour of Go , zdecydowałem, że potrzebuję kolejki ( string
, int
) par. To dość proste:
type job struct {
url string
depth int
}
queue := make(chan job)
queue <- job{url, depth}
Ale to dało mi do myślenia: czy w Go są wbudowane typy danych typu para / krotka? Istnieje wsparcie dla zwracania wielu wartości z funkcji, ale AFAICT, wyprodukowane krotki wielu wartości nie są obywatelami pierwszej klasy w systemie typów Go. Czy tak jest?
Jeśli chodzi o część „czego próbowałeś”, oczywista składnia (z punktu widzenia programisty Pythona)
queue := make(chan (string, int))
nie zadziałało.
Mógłbyś zrobić coś takiego, gdybyś chciał
Jednak myślę, że to, co już masz, jest idealnie idiomatyczne, a struktura doskonale opisuje twoje dane, co jest dużą zaletą w porównaniu z użyciem zwykłych krotek.
źródło