Nowa funkcja
Lekcja 3 z 19 w kursie Funkcje i wskaźniki w Golang w Coddy.
W ostatnich lekcjach dowiedzieliśmy się, że zmienne to obiekty lub miejsca w pamięci, do których wskazuje nazwa.
W Go mamy funkcję, która tworzy nienazwane miejsce w pamięci. Robimy to za pomocą funkcji new(). Składnia wygląda następująco:
coddy := new(string)Utworzyliśmy tutaj obiekt o nazwie coddy i typie string, a funkcja new() zwraca wskaźnik do tego obiektu (miejsca).
Jeśli wypiszemy nazwę, otrzymamy adres pamięci tego miejsca:
fmt.Println("Value:", coddy)Wynik będzie następujący:
Value: 0xc000014070Możemy przypisać nową wartość do tego wskaźnika w ten sposób:
coddy := new(string)
*coddy = "Learn To Code with coddy"
fmt.Println("Value:", *coddy)Wynik będzie następujący:
Value: Learn To Code with coddyPamiętaj, że gdy tworzymy wskaźniki za pomocą funkcji new(), wartością domyślną nie jest nil. Zależy ona od typu, tak jak w przypadku zmiennych. Jeśli typem jest int, wartością domyślną jest 0; w przypadku string jest to pusty ciąg znaków, a w przypadku boolean — false.
Wyzwanie
ŁatwyNapisz program, który pobiera dane od użytkownika i wykonuje następujące czynności:
- Tworzy wskaźnik typu int za pomocą funkcji new().
- Wyświetla domyślną wartość wskaźnika.
- Przypisuje do tego wskaźnika wartość wprowadzoną przez użytkownika.
- Wyświetla wartość wskaźnika po przypisaniu.
Spróbuj swoich sił
package main
import (
"fmt"
)
func main() {
// Pobierz dane od użytkownika. Nie zmieniaj tego!
var num int
fmt.Scanln(&num)
// Utwórz wskaźnik typu int za pomocą funkcji new().
// Wyświetla domyślną wartość wskaźnika.
fmt.Println("Default value of the pointer:", ?)
// Przypisuje temu wskaźnikowi wartość wprowadzoną przez użytkownika
// Wyświetla wartość wskaźnika po przypisaniu.
fmt.Println("Value of the pointer after assignment:", ?)
}
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