Jestem nowym językiem Go. Znalazłem się zdezorientowany z typami danych array
i slice
.Przejdź do tablicy kolorów i typów danych plasterków
Od docs odejść, tablice są opisane w następujący sposób:
There are major differences between the ways arrays work in Go and C. In Go,
- Arrays are values. Assigning one array to another copies all the elements.
- In particular, if you pass an array to a function, it will receive a copy of the array, not a pointer to it.
- The size of an array is part of its type. The types [10]int and [20]int are distinct.
funkcje:
As in all languages in the C family, everything in Go is passed by value. That is, a function always gets a copy of the thing being passed, as if there were an assignment statement assigning the value to the parameter. For instance, passing an int value to a function makes a copy of the int, and passing a pointer value makes a copy of the pointer, but not the data it points to.
Dlaczego sort.Ints(arrayValue)
zmodyfikować zmienną przekazany kiedy ogłosił go jako tablicę, a nie jako plaster?
Kod
var av = []int{1,5,2,3,7}
fmt.Println(av)
sort.Ints(av)
fmt.Println(av)
return
Wyjście
[1 5 2 3 7]
[1 2 3 5 7]
Ponadto sort.Ints da błąd, jeśli przekażemy mu tablica zamiast plasterka. Dokumentacja sort.Ints określa plaster. https://golang.org/pkg/sort/#Ints – Kirk
@Kirk dobry punkt. Zawarłem to w odpowiedzi, aby uzyskać lepszą widoczność. – VonC