Menu
Coddy logo textTech

Slice z make

Lekcja 12 z 21 w kursie Slice’y i mapy w Go w Coddy.

W poprzednich lekcjach tworzyliśmy wycinki za pomocą literałów wycinków. Istnieje jednak inna funkcja o nazwie <strong>make</strong>. Pozwala ona przydzielić tablicę bazową dla wycinka o określonej długości i pojemności. Funkcja taka jak <strong>make</strong> jest potrzebna, ponieważ długość wycinka nie jest z góry określona. Funkcja <strong>make</strong> pozwala więc utworzyć wycinek o określonej długości.

Nie zrozum tego jednak opacznie — jego długość nie staje się stała. Nadal możesz do niego dopisywać elementy.

Składnia funkcji <strong>make</strong> wygląda następująco:

mySlice = make([]string, 4)

Wystarczy użyć funkcji <strong>make</strong>. Pierwszy argument (<strong>[]string</strong>) określa typ wycinka, a drugi argument (<strong>4</strong>) informuje funkcję <strong>make</strong> o długości potrzebnej dla naszego wycinka. Drugi argument określa również pojemność tablicy bazowej. Zwrócony wycinek ma więc taką samą długość i pojemność.

 

Pojawia się teraz pytanie: po co używać funkcji <strong>make</strong> do tworzenia wycinka, skoro możemy po prostu użyć zwykłego literału wycinka?

Odpowiedź jest taka, że w niektórych sytuacjach musimy dodać nowe wartości do wycinka. Jeśli nie ma on wystarczającej pojemności, zostanie utworzona nowa tablica bazowa. Ta operacja jest dość kosztowna pod względem pamięci, ponieważ wymaga ponownej alokacji. Funkcja <strong>make</strong> zapobiega tej ponownej alokacji, z wyprzedzeniem przydzielając miejsce w pamięci.

Za pomocą funkcji <strong>make</strong> możemy określić długość i pojemność za pomocą różnych wartości, tak jak poniżej:

mySlice = make([]string, 4, 6)

Ogólnie funkcję <strong>make</strong> można przedstawić w następujący sposób:


challenge icon

Wyzwanie

Łatwy

Za pomocą funkcji <strong>make</strong> utwórz wycinek o nazwie <strong>coddy</strong> o długości 4 i pojemności 5.

  • Dodaj wartość "Learn Golang" pod indeksem 0. 
  • Dodaj wartość "Coddy.tech" pod indeksem 3.
  • Iteruj po tym wycinku za pomocą słowa kluczowego <strong>range</strong> i wyświetl na ekranie indeks oraz wartość .

Spróbuj swoich sił

package main

import "fmt"

func main() {
    // Utwórz wycinek coddy za pomocą make  
    
 	// Dodaj elementy pod indeksami 0 i 3


    // Przejdź po elementach wycinka coddy



}

Wszystkie lekcje w sekcji Slice’y i mapy w Go

Poćwicz samodzielnie: Kompilator Go online