Menu
Coddy logo textTech

Fundamentos de Escopo de Função

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

Em Go, variáveis declaradas dentro de uma função são acessíveis apenas dentro dessa função. Isso é chamado de escopo de função.

Crie uma função com uma variável local:

func calculateTotal(price int, quantity int) int {
    tax := 0.1 * float64(price * quantity)  // variável local
    total := price * quantity + int(tax)
    return total
}

func main() {
    result := calculateTotal(10, 2)
    fmt.Println("Total:", result)
    // fmt.Println(tax)  // Erro: tax não está acessível aqui
}

A saída mostra apenas o valor retornado:

Total: 22

A variável tax existe apenas dentro da função calculateTotal e não pode ser acessada a partir de main.

challenge icon

Desafio

Iniciante

Neste desafio, você praticará a compreensão do escopo de função em Go. Você precisa corrigir um programa simples que possui um problema de escopo.

O programa possui uma variável global message e uma função que tenta modificá-la. Sua tarefa é corrigir o código para que a função atualize corretamente a variável global.

Experimente você mesmo

package main

import "fmt"

// Variável global
var message string = "Hello from global scope"

func updateMessage() {
    // Isso cria uma nova variável local em vez de modificar a global
    message := "Hello from function scope"
    fmt.Println("Inside function:", message)
}

func main() {
    fmt.Println("Before function call:", message)
    updateMessage()
    
    // TODO: A mensagem global ainda é o valor original
    // Modifique a função updateMessage() para alterar a variável global
    fmt.Println("After function call:", message)
}
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