Scroll to top
Biến toàn cục và biến cục bộ

Biến toàn cục và biến cục bộ

ByAdmin 2022-12-18 18:08
2 min read

Phần này mình sẽ giới thiệu về **biến toàn cục** (global variable) và **biến địa phương** (local variable) trong ngôn ngữ lập trình Go.

Phần này mình sẽ giới thiệu về biến toàn cục (global variable) và biến cục bộ (local variable) trong ngôn ngữ lập trình Go.

Biến toàn cục (global variable)

Biến toàn cục hay còn gọi là global variable, là những biến được khai báo cùng scope với package, tức là được khai báo bên ngoài tất cả các hàm.

Chúng ta không thể khai báo biến toàn cục theo cách rút gọn ví dụ như number := 10, chương trình sẽ báo lỗi. Để khai báo biến toàn cục chúng ta phải dùng cú pháp đầy đủ như sau:

Copy go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main

import "fmt"

var number

// Khai báo và gán luôn giá trị
var number int = 10

// Khai báo nhiều biến
var (
    number1 int = 10
    number2 float = 9.5
)

Biến toàn cục có thể được sử dụng trong tất cả các hàm trong cùng package

Copy go
1
2
3
4
5
6
7
8
9
10
11
package main

import "fmt"

var number int = 10

func main() {
    fmt.Println(number)
}

// Kết quả: 10

Biến cục bộ (local variable)

Biến cục bộ hay còn gọi là local variable, là những biến được khai báo trong phạm vi một hàm, một block, và chỉ có thể được truy xuất trong phạm vi hàm hoặc block đó.

Copy go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package main

import "fmt"

func main() {
    hello()

    if true {
        txt := "True"
        fmt.Println(txt)
    }

    // fmt.Println(msg) => Báo lỗi
    // fmt.Println(txt) => Báo lỗi
}

func hello() {
    msg := "Hello world!"
    fmt.Println(msg)
    return
}

Như ở ví dụ trên thì msgtxt đều là biến cục bộ. Biến msg chỉ có tác dụng trong hàm hello(), còn biến txt chỉ có tác dụng trong phạm vi block của if true {}. Do đó nếu như ở hàm main() chúng ta gọi đến 2 biến cục bộ này thì chương trình sẽ báo lỗi.

Đánh giá bài viết: 5/5 (26 đánh giá)
Bạn chưa đánh giá

Bình luận

Bài kế tiếp
Shadowed variable
Author
hoclaptrinh.io author
Tác giả:Yuto Yasunaga

Mình là một full stack developer, tốt nghiệp và làm việc tại Nhật Bản. Trang web này là nơi mình tổng hợp, đúc kết và lưu trữ lại những kiến thức trong quá trình học và làm việc liên quan đến IT.
Hy vọng những bài viết ở website này sẽ có ích cho bạn.