Menu
Coddy logo textTech

Ponteiros para Structs

Parte da seção Fundamentos do Journey de GO da Coddy. Lição 97 de 109.

Ao trabalhar com structs, você pode criar ponteiros para elas assim como com outros tipos. Isso é útil para passar structs grandes de forma eficiente.

Defina uma struct Person e crie um ponteiro para ela:

type Person struct {
    name string
    age  int
}

func main() {
    person := Person{name: "Alice", age: 30}
    
    // Cria um ponteiro para a struct
    personPtr := &person
    
    // Acessa campos através do ponteiro
    fmt.Println(personPtr.name)
    fmt.Println(personPtr.age)
}

A saída mostra que podemos acessar campos através do ponteiro:

Alice
30

Você também pode modificar campos através do ponteiro:

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

Desafio

Iniciante

Neste desafio, você praticará o trabalho com ponteiros para structs em Go. Você tem uma struct Person com os campos name e age. Sua tarefa é atualizar as informações da pessoa usando um ponteiro para a struct.

O código já cria uma struct Person e um ponteiro para ela. Você precisa modificar as informações da pessoa através do ponteiro.

Experimente você mesmo

package main

import "fmt"

// Estrutura Person com os campos name e age
type Person struct {
	name string
	age  int
}

func main() {
	// Cria uma estrutura Person
	person := Person{
		name: "John",
		age:  25,
	}

	// Cria um ponteiro para a estrutura Person
	personPtr := &person

	// Imprime as informações originais da pessoa
	fmt.Println("Original person:")
	fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)

	// TODO: Use o ponteiro para alterar o nome da pessoa para "Jane" e a idade para 30
	// Dica: Você pode acessar campos de uma estrutura através de um ponteiro usando a notação de ponto
	

	// Imprime as informações atualizadas da pessoa
	fmt.Println("Updated person:")
	fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de Go online