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:
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
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 đó.
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ì msg
và txt
đề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.