Deklarowanie zmiennych wskaźnikowych
Część sekcji Podstawy ścieżki GO w Coddy. Lekcja 61 z 109.
W Go możesz deklarować wskaźniki na dwa główne sposoby: używając var z typem wskaźnikowym lub używając operatora adresu z :=.
Zadeklaruj wskaźnik za pomocą var i typu wskaźnikowego:
func main() {
var x int = 42
var ptr *int // Zadeklaruj wskaźnik do liczby całkowitej
ptr = &x // Przypisz adres x do ptr
fmt.Println("Value of x:", x)
fmt.Println("Value of ptr:", ptr)
fmt.Println("Value at ptr:", *ptr)
}Wynik pokazuje, że wskaźnik przechowuje adres zmiennej x:
Value of x: 42
Value of ptr: 0xc000018030
Value at ptr: 42Możesz również zadeklarować i zainicjalizować wskaźnik w jednym wierszu, używając :=:
y := 100
ptr := &y // Zadeklaruj i zainicjalizuj wskaźnik w jednym krokuWyzwanie
PoczątkującyW tym wyzwaniu poćwiczysz deklarowanie i używanie wskaźników w Go. Wskaźnik jest już przygotowany, a Twoim zadaniem jest utworzenie nowego wskaźnika wskazującego tę samą wartość.
Uzupełnij TODO w kodzie, aby zadeklarować nową zmienną wskaźnikową o nazwie 'secondPointer', która wskazuje ten sam adres pamięci co istniejący wskaźnik.
Spróbuj swoich sił
package main
import "fmt"
func main() {
// Oto zmienna i wskaźnik do niej
originalValue := 42
pointerToValue := &originalValue
// TODO: Zadeklaruj nową zmienną wskaźnikową o nazwie 'secondPointer'
// która wskazuje na ten sam adres pamięci co 'pointerToValue'
// Nie modyfikuj poniższego kodu
fmt.Printf("Original value: %v\n", originalValue)
fmt.Printf("Value through first pointer: %v\n", *pointerToValue)
fmt.Printf("Value through second pointer: %v\n", *secondPointer)
// Zmieńmy pierwotną wartość i zobaczmy, jak wszystkie wskaźniki odzwierciedlają tę zmianę
originalValue = 100
fmt.Printf("\nAfter changing original value to 100:\n")
fmt.Printf("Original value: %v\n", originalValue)
fmt.Printf("Value through first pointer: %v\n", *pointerToValue)
fmt.Printf("Value through second pointer: %v\n", *secondPointer)
}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 decyzji9Wskaźniki
Czym jest wskaźnik?Deklarowanie zmiennych wskaźnikowychOperator pobrania adresuDereferencja wskaźnikówUżywanie wskaźników w funkcjachWskaźniki nilPowtórzenie — zrozumienie wskaźnikówPoćwicz samodzielnie: Kompilator Go online