Go

Struktury danych w Go

Arrays, slices, maps, structs, pointers, make vs new, wartości nil

20 pytań z rozmów·
Junior
1

Czym jest slice w Go?

Odpowiedź

Slice to dynamiczny widok na bazową tablicę (array), który umożliwia manipulowanie sekwencjami elementów o zmiennej długości. W przeciwieństwie do tablic, które mają stały rozmiar ustalany w czasie kompilacji, slice'y mogą dynamicznie rosnąć lub kurczyć się dzięki operacjom takim jak append. Ta elastyczność czyni je najczęściej używaną sekwencyjną strukturą danych w Go do przechowywania kolekcji jednorodnych elementów.

2

Jaka jest główna różnica między array a slice w Go?

Odpowiedź

Fundamentalna różnica tkwi w rozmiarze: array ma stały rozmiar ustalany w czasie kompilacji i jest częścią samego typu, podczas gdy slice ma dynamiczny rozmiar, który może zmieniać się w czasie wykonania. To rozróżnienie oznacza, że dwie tablice o różnych rozmiarach są uznawane za typy niekompatybilne, podczas gdy wszystkie slice'y o tym samym typie elementu są kompatybilne. Slice'y są więc bardziej elastyczne i częściej używane we współczesnym kodzie Go.

3

Jak utworzyć pusty slice w Go?

Odpowiedź

Składnia literałowa z pustymi nawiasami kwadratowymi i pustymi nawiasami klamrowymi to idiomatyczny sposób tworzenia zainicjalizowanego pustego slice'a. To podejście tworzy slice o długości 0, ale nie nil, gotowy do przyjmowania elementów przez append. W przeciwieństwie do prostej deklaracji, która dałaby slice nil, ta jawna inicjalizacja gwarantuje slice gotowy do natychmiastowego użycia bez ryzyka nieoczekiwanego zachowania przy dodawaniu elementów.

4

Której funkcji należy użyć, aby zainicjalizować slice z określoną pojemnością?

5

Co się dzieje, gdy dodajemy element do slice'a, którego pojemność została osiągnięta?

+17 pytań z rozmów

Opanuj Go na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo