Dereferencja wskaźników
Część sekcji Podstawy ścieżki GO w Coddy. Lekcja 63 z 109.
Wyłuskiwanie wskaźników (*) pozwala uzyskać dostęp do wartości przechowywanej pod adresem pamięci. Nazywa się to „wyłuskiwaniem” wskaźnika.
Utwórz zmienną i wskaźnik do niej:
func main() {
number := 42
pointer := &number
// Wyłuskaj wartość ze wskaźnika
value := *pointer
fmt.Println("Pointer:", pointer)
fmt.Println("Dereferenced value:", value)
}Wynik pokazuje zarówno wskaźnik, jak i wartość, na którą wskazuje:
Pointer: 0xc000018030
Dereferenced value: 42Gwiazdka (*) przed zmienną wskaźnikową umożliwia dostęp do rzeczywistej wartości pod tym adresem pamięci.
Wyzwanie
PoczątkującyW tym wyzwaniu przećwiczysz dereferencję wskaźników w Go. Mamy zmienną message o wartości typu string oraz wskaźnik messagePtr, który na nią wskazuje.
Twoim zadaniem jest dereferencja wskaźnika, aby uzyskać dostęp do wartości, na którą wskazuje, i ją wypisać.
Spróbuj swoich sił
package main
import "fmt"
func main() {
// Oto nasza zmienna tekstowa
message := "Hello, pointers!"
// To jest wskaźnik do naszej zmiennej message
messagePtr := &message
// TODO: Wyłuskaj wartość wskazywaną przez messagePtr
// i zapisz ją w zmiennej 'value'
value := ""
// Wypisz wyniki
fmt.Println("The pointer points to the value:", value)
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory porównania i logiczne
Operatory porównania – część 1Operatory porównania – część 2Logiczny operator ANDLogiczny operator ORLogiczny operator NOTPodstawy kolejności wykonywania operatorówPodsumowanie – porównywanie7Sterowanie przepływem: pętle
Jak działa pętla `for`Pętla `for` — podstawyPętla `for` — tylko warunekSłowo kluczowe `break`Słowo kluczowe `continue`Pętle zagnieżdżonePodsumowanie — powtarzanie działań2Zmienne i podstawowe typy danych
Czym jest zmiennaWnioskowanie o typie za pomocą `:=`Liczby całkowite (int)Liczby zmiennoprzecinkoweWartości logiczneCiągi znakówWartości zeroweStałeKonwencje nazewnictwaPodsumowanie – zmienne i typy5Podstawowe wejście/wyjście
Formatowane wyjścieSpecyfikatory formatuWyświetlanie typówPobieranie podstawowych danych od użytkownikaPodsumowanie — wejście i wyjście8Funkcje
Zrozumienie funkcjiDeklarowanie funkcjiWywoływanie funkcjiParametry funkcjiZwracanie jednej wartościZwracanie wielu wartościNazwane wartości zwracanePodstawy zakresu funkcjiPodsumowanie — tworzenie wielokrotnego użytku kodu11Typy złożone: wycinki
Wprowadzenie do wycinkówDeklarowanie literałów wycinkówTworzenie wycinków za pomocą `make`Długość a pojemność wycinkaDostęp do elementów wycinkaDodawanie elementówWycinanie z istniejących wycinków i tablicIterowanie po wycinkachKopiowanie wycinkówPodsumowanie — listy dynamiczne3Podstawowe operatory
Operatory arytmetyczneOperator dzieleniaOperator moduloOperator przypisaniaOperatory przypisania z działaniemZwiększanie i zmniejszaniePowtórka – obliczenia6Sterowanie przepływem: instrukcje warunkowe
Instrukcja `if`Słowo kluczowe `else`Słowo kluczowe `else if`Przesłanianie zmiennych w `if`Inicjalizacja zmiennychInstrukcja `switch``switch` z wyrażeniami`switch` bez wyrażeniaSłowo kluczowe `fallthrough`Podsumowanie — podejmowanie decyzjiPoćwicz samodzielnie: Kompilator Go online