Menu
Coddy logo textTech

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: 0xc000014070

Moż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 coddy

Pamię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.

challenge icon

Wyzwanie

Łatwy

Napisz program, który pobiera dane od użytkownika i wykonuje następujące czynności:

  1. Tworzy wskaźnik typu int za pomocą funkcji new().
  2. Wyświetla domyślną wartość wskaźnika.
  3. Przypisuje do tego wskaźnika wartość wprowadzoną przez użytkownika.
  4. 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

Poćwicz samodzielnie: Kompilator Go online