Menu
Coddy logo textTech

Puntatori a struct

Fa parte della sezione Fondamenti del percorso GO di Coddy. Lezione 97 di 109.

Quando lavori con le struct, puoi creare puntatori a esse proprio come con gli altri tipi. Questo è utile per passare struct di grandi dimensioni in modo efficiente.

Definisci una struct Person e crea un puntatore a essa:

type Person struct {
    name string
    age  int
}

func main() {
    person := Person{name: "Alice", age: 30}
    
    // Crea un puntero a la estructura
    personPtr := &person
    
    // Accede a los campos mediante el puntero
    fmt.Println(personPtr.name)
    fmt.Println(personPtr.age)
}

L'output mostra che possiamo accedere ai campi tramite il puntatore:

Alice
30

Puoi anche modificare i campi tramite il puntatore:

personPtr.age = 31
fmt.Println(person.age)  // Stampa: 31
challenge icon

Sfida

Principiante

In questa sfida, ti eserciterai a lavorare con i puntatori a struct in Go. Hai una struct Person con i campi name e age. Il tuo compito è aggiornare le informazioni della persona usando un puntatore alla struct.

Il codice crea già una struct Person e un puntatore a essa. Devi modificare le informazioni della persona tramite il puntatore.

Provalo tu

package main

import "fmt"

// Struct Person con i campi name e age
type Person struct {
	name string
	age  int
}

func main() {
	// Crea una struct Person
	person := Person{
		name: "John",
		age:  25,
	}

	// Crea un puntatore alla struct Person
	personPtr := &person

	// Stampa le informazioni originali della persona
	fmt.Println("Original person:")
	fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)

	// TODO: Usa il puntatore per cambiare il nome della persona in "Jane" e l'età in 30
	// Suggerimento: puoi accedere ai campi di una struct tramite un puntatore usando la notazione con il punto
	

	// Stampa le informazioni aggiornate della persona
	fmt.Println("Updated person:")
	fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Go online