Sobes.tech
Junior — Middle

Jaką funkcję pełni operator `*` w języku Go, szczególnie w odniesieniu do wskaźników?

sobes.tech AI

Odpowiedź od AI

W języku Go operator * jest używany do pracy z wskaźnikami i pełni dwie główne funkcje:

  1. Dereferencja wskaźnika — uzyskanie wartości, na którą wskazuje wskaźnik.

  2. Deklaracja wskaźnika — przy deklaracji zmiennej z * wskazuje się, że jest to wskaźnik na typ.

Przykład:

var a int = 10
var p *int = &a  // p jest wskaźnikiem na a
fmt.Println(*p)   // wypisuje 10 — wartość, na którą wskazuje p

*p = 20           // zmieniamy wartość a przez wskaźnik
fmt.Println(a)    // wypisuje 20

W ten sposób * pozwala pracować z adresami i wartościami w pamięci, zapewniając niskopoziomową kontrolę nad danymi.