Nuova funzione
Lezione 3 di 19 del corso Funzioni e puntatori in Golang di Coddy.
Nelle lezioni precedenti, abbiamo imparato che le variabili sono oggetti o spazi in memoria con un nome che punta a quello spazio.
In Go, abbiamo una funzione che crea uno spazio senza nome in memoria, e lo facciamo con l'aiuto della funzione new(). La sintassi è la seguente:
coddy := new(string)Qui abbiamo creato un oggetto con il nome coddy e di tipo string, e la funzione new() restituisce un puntatore a quell'oggetto (spazio).
Se stampiamo il nome, otterremo l'indirizzo di memoria di questo spazio:
fmt.Println("Value:", coddy)Il risultato sarà:
Value: 0xc000014070Possiamo riassegnare un valore a questo puntatore così:
coddy := new(string)
*coddy = "Learn To Code with coddy"
fmt.Println("Value:", *coddy)Il risultato sarà:
Value: Learn To Code with coddyNota che quando creiamo puntatori con la funzione new(), il valore predefinito non è nil. Dipende dal tipo, proprio come per le variabili. Se il tipo è int, il valore predefinito è 0; per string, è una stringa vuota; e per boolean, è false.
Sfida
FacileScrivi un programma che riceva un input dall'utente ed esegua le seguenti operazioni:
- Crea un puntatore di tipo int usando la funzione new().
- Stampa il valore predefinito del puntatore.
- Assegna a quel puntatore il valore inserito dall'utente.
- Stampa il valore del puntatore dopo l'assegnazione.
Provalo tu
package main
import (
"fmt"
)
func main() {
// Acquisisci l'input dall'utente. Non modificare questa parte!
var num int
fmt.Scanln(&num)
// Crea un puntatore di tipo int usando la funzione new().
// Stampa il valore predefinito del puntatore.
fmt.Println("Default value of the pointer:", ?)
// Assegna a quel puntatore il valore inserito dall'utente
// Stampa il valore del puntatore dopo l'assegnazione.
fmt.Println("Value of the pointer after assignment:", ?)
}
Tutte le lezioni di Funzioni e puntatori in Golang
1Introduzione
Introduzione4Ricostruire le funzioni Strings di Go
Stringhe in GolangFunzione JoinFunzione ContainsFunzione IndexSfida di ripasso #15Ricostruire le funzioni delle slice in Go
Funzione di uguaglianzaFunzione di lunghezzaSfida di riepilogo n. 1Esercitati da solo: Compilatore Go online