Menu
CoddyTech

Những điều cơ bản về phạm vi của hàm

Thuộc phần Kiến thức nền tảng trong hành trình GO của Coddy. Bài học 58 trên 109.

Trong Go, các biến được khai báo bên trong một hàm chỉ có thể truy cập trong hàm đó. Phạm vi này được gọi là phạm vi hàm.

Tạo một hàm có biến cục bộ:

func calculateTotal(price int, quantity int) int {
    tax := 0.1 * float64(price * quantity)  // biến cục bộ
    total := price * quantity + int(tax)
    return total
}

func main() {
    result := calculateTotal(10, 2)
    fmt.Println("Total:", result)
    // fmt.Println(tax)  // Lỗi: không thể truy cập tax ở đây
}

Đầu ra chỉ hiển thị giá trị trả về:

Total: 22

Biến tax chỉ tồn tại bên trong hàm calculateTotal và không thể được truy cập từ main.

challenge icon

Thử thách

Người mới

Trong thử thách này, bạn sẽ luyện cách hiểu phạm vi (scope) của hàm (function) trong Go. Bạn cần sửa một chương trình đơn giản có vấn đề về phạm vi.

Chương trình có một biến toàn cục message và một hàm cố gắng sửa biến đó. Nhiệm vụ của bạn là sửa code để hàm cập nhật đúng biến toàn cục.

Tự làm thử

package main

import "fmt"

// Biến toàn cục
var message string = "Hello from global scope"

func updateMessage() {
    // Thao tác này tạo biến cục bộ mới thay vì thay đổi biến toàn cục
    message := "Hello from function scope"
    fmt.Println("Inside function:", message)
}

func main() {
    fmt.Println("Before function call:", message)
    updateMessage()
    
    // TODO: Biến message toàn cục vẫn giữ giá trị ban đầu
    // Sửa hàm updateMessage() để thay đổi biến toàn cục
    fmt.Println("After function call:", message)
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Go online