Czym jest wskaźnik
Lekcja 2 z 19 w kursie Funkcje i wskaźniki w Golang w Coddy.
Pierwsze pytanie, na które musimy odpowiedzieć, brzmi: czym jest wskaźnik? Poznaliśmy już zmienne, które zdefiniowaliśmy jako pudełka przechowujące nasze wartości. Wskaźniki natomiast to pudełka, które przechowują adresy zamiast wartości.
Gdy tworzymy zmienną w dowolnym języku programowania, jest ona przechowywana w pamięci, a każde miejsce w pamięci ma adres. Na przykład, jeśli zdefiniujemy zmienną w ten sposób:
var name = "Coddy"Możemy przedstawić to w pamięci w ten sposób:
Aby móc pobrać dowolną wartość z pamięci, potrzebujemy adresu. Adres wskazuje nam więc, gdzie w pamięci znajduje się to miejsce.
Wskaźnik to natomiast pudełko, w którym przechowujemy adres pamięci zamiast wartości. Dlatego nazywamy go wskaźnikiem — wskazuje on adres w pamięci.
Składnia definiowania wskaźnika wygląda tak:
var name = "Coddy"
namePointer := &nameTutaj definiujemy wskaźnik o nazwie namePointer i za pomocą & wskazujemy adres zmiennej name.
Możemy zdefiniować nowy wskaźnik z wartością domyślną, którą jest nil, w ten sposób:
var coddy *stringTa składnia * tworzy nowy wskaźnik o nazwie coddy i typie string, a domyślną wartością wskaźnika jest nil.
Aby wypisać adres przechowywany we wskaźniku, po prostu przekazujemy nazwę wskaźnika w ten sposób:
fmt.Println(coddy)Aby wypisać wartość przechowywaną pod adresem wskazywanym przez wskaźnik, używamy gwiazdki *:
fmt.Println(*coddy)Wyzwanie
Łatwy- Zadeklaruj zmienną o nazwie a i wartości 200.
- Zadeklaruj nowy wskaźnik o nazwie aPointer typu int.
- Przypisz adres zmiennej a do wskaźnika aPointer.
- Wyświetl wartość wskaźnika aPointer i zmiennej a.
Spróbuj swoich sił
package main
import "fmt"
func main() {
// Zadeklaruj zmienną o nazwie a i wartości 200.
// Zadeklaruj nowy wskaźnik o nazwie aPointer typu int.
// Przypisz adres zmiennej a do wskaźnika aPointer.
// Wypisz wartość wskaźnika aPointer oraz zmiennej a.
fmt.Println("the value of the pointer:",?)
fmt.Println("the value of the variable :",?)
}Wszystkie lekcje w sekcji Funkcje i wskaźniki w Golang
1Wprowadzenie
Wprowadzenie4Odtwórz funkcje obsługi ciągów znaków w Go
Ciągi znaków w GolangFunkcja JoinFunkcja ContainsFunkcja IndexWyzwanie podsumowujące nr 1Poćwicz samodzielnie: Kompilator Go online