Menu
Coddy logo textTech

Podstawy zakresu funkcji

Część sekcji Podstawy ścieżki GO w Coddy. Lekcja 58 z 109.

W Go zmienne zadeklarowane wewnątrz funkcji są dostępne tylko w obrębie tej funkcji. Nazywa się to zakresem funkcji.

Utwórz funkcję ze zmienną lokalną:

func calculateTotal(price int, quantity int) int {
    tax := 0.1 * float64(price * quantity)  // zmienna lokalna
    total := price * quantity + int(tax)
    return total
}

func main() {
    result := calculateTotal(10, 2)
    fmt.Println("Total:", result)
    // fmt.Println(tax)  // Błąd: tax nie jest tutaj dostępna
}

Wynik pokazuje tylko zwróconą wartość:

Total: 22

Zmienna tax istnieje tylko wewnątrz funkcji calculateTotal i nie można uzyskać do niej dostępu z main.

challenge icon

Wyzwanie

Początkujący

W tym wyzwaniu poćwiczysz rozumienie zakresu funkcji w Go. Musisz naprawić prosty program, w którym występuje problem z zakresem.

Program ma zmienną globalną message i funkcję, która próbuje ją zmodyfikować. Twoim zadaniem jest naprawić kod, aby funkcja prawidłowo aktualizowała zmienną globalną.

Spróbuj swoich sił

package main

import "fmt"

// Zmienna globalna
var message string = "Hello from global scope"

func updateMessage() {
    // To tworzy nową zmienną lokalną zamiast modyfikować zmienną globalną
    message := "Hello from function scope"
    fmt.Println("Inside function:", message)
}

func main() {
    fmt.Println("Before function call:", message)
    updateMessage()
    
    // TODO: Globalna zmienna message nadal ma pierwotną wartość
    // Zmodyfikuj funkcję updateMessage(), aby zmieniała zmienną globalną
    fmt.Println("After function call:", message)
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Go online