Wskaźniki do struktur
Część sekcji Podstawy ścieżki GO w Coddy. Lekcja 97 z 109.
Podczas pracy ze strukturami możesz tworzyć do nich wskaźniki, tak jak w przypadku innych typów. Jest to przydatne do wydajnego przekazywania dużych struktur.
Zdefiniuj strukturę Person i utwórz do niej wskaźnik:
type Person struct {
name string
age int
}
func main() {
person := Person{name: "Alice", age: 30}
// Utwórz wskaźnik do struktury
personPtr := &person
// Uzyskaj dostęp do pól przez wskaźnik
fmt.Println(personPtr.name)
fmt.Println(personPtr.age)
}Wynik pokazuje, że możemy uzyskać dostęp do pól za pośrednictwem wskaźnika:
Alice
30Możesz także modyfikować pola za pomocą wskaźnika:
personPtr.age = 31
fmt.Println(person.age) // Wypisuje: 31Wyzwanie
PoczątkującyW tym wyzwaniu poćwiczysz pracę ze wskaźnikami do struktur w Go. Masz strukturę Person z polami name i age. Twoim zadaniem jest zaktualizowanie informacji o osobie za pomocą wskaźnika do struktury.
Kod już tworzy strukturę Person i wskaźnik do niej. Musisz zmodyfikować informacje o osobie za pomocą wskaźnika.
Spróbuj swoich sił
package main
import "fmt"
// Struktura Person z polami name i age
type Person struct {
name string
age int
}
func main() {
// Utwórz strukturę Person
person := Person{
name: "John",
age: 25,
}
// Utwórz wskaźnik do struktury Person
personPtr := &person
// Wypisz pierwotne dane osoby
fmt.Println("Original person:")
fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
// TODO: Użyj wskaźnika, aby zmienić imię osoby na "Jane", a wiek na 30
// Wskazówka: Dostęp do pól struktury przez wskaźnik można uzyskać za pomocą notacji kropkowej
// Wypisz zaktualizowane dane osoby
fmt.Println("Updated person:")
fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
}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ń10Typy złożone: tablice
Wprowadzenie do tablicDeklarowanie tablicInicjalizacja tablicDostęp do elementów tablicyDługość tablicy za pomocą `len`Iterowanie po tablicachTablice wielowymiarowe13Typy złożone: struktury
Definiowanie własnych typówTworzenie instancji strukturDostęp do pól strukturWskaźniki do strukturInicjalizacja strukturStruktury osadzoneStruktury anonimowePodsumowanie — własne struktury danych2Zmienne 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