Đi biến
Biến là nơi chứa các giá trị dữ liệu.
Đi các loại biến
Trong Go, có nhiều loại biến khác nhau, ví dụ:
-
int
- lưu trữ số nguyên (số nguyên), chẳng hạn như 123 hoặc -123 -
float32
- lưu trữ số dấu phẩy động, có số thập phân, chẳng hạn như 19,99 hoặc -19,99 -
string
- lưu trữ văn bản, chẳng hạn như "Xin chào thế giới". Giá trị chuỗi được bao quanh bởi dấu ngoặc kép -
bool
- lưu trữ các giá trị với hai trạng thái: đúng hoặc sai
Thông tin thêm về các loại biến khác nhau sẽ được giải thích trong chương Kiểu dữ liệu Go .
Khai báo (Tạo) Biến
Trong Go, có hai cách để khai báo một biến:
1. Với từ khóa var
:
Sử dụng từ khóa var
, theo sau là tên và loại biến:
Cú pháp
var variablename type = value
Lưu ý: Bạn luôn phải chỉ định type
hoặc value
(hoặc cả hai).
2. Với dấu :=
:
Sử dụng dấu :=
, theo sau là giá trị biến:
Cú pháp
variablename := value
Lưu ý: Trong trường hợp này, loại biến được suy ra từ giá trị (có nghĩa là trình biên dịch quyết định loại biến, dựa trên giá trị).
Lưu ý: Không thể khai báo một biến bằng cách sử dụng :=
mà không gán giá trị cho nó.
Khai báo biến với giá trị ban đầu
Nếu giá trị của một biến đã được biết ngay từ đầu, bạn có thể khai báo biến đó và gán giá trị cho biến đó trên một dòng:
Ví dụ
package main
import ("fmt")
func main() {
var student1 string = "John" //type is
string
var student2 = "Jane" //type is inferred
x := 2 //type is inferred
fmt.Println(student1)
fmt.Println(student2)
fmt.Println(x)
}
Hãy tự mình thử » Lưu ý: Các kiểu biến của student2
và x
được suy ra từ giá trị của chúng.
Khai báo biến không có giá trị ban đầu
Trong Go, tất cả các biến đều được khởi tạo. Vì vậy, nếu bạn khai báo một biến không có giá trị ban đầu, giá trị của nó sẽ được đặt thành giá trị mặc định của loại biến đó:
Ví dụ
package main
import ("fmt")
func main() {
var a string
var b int
var c bool
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
Hãy tự mình thử »Ví dụ giải thích
Trong ví dụ này có 3 biến:
-
a
-
b
-
c
Các biến này được khai báo nhưng chúng chưa được gán giá trị ban đầu.
Bằng cách chạy mã, chúng ta có thể thấy rằng chúng đã có các giá trị mặc định của các loại tương ứng:
-
a
là""
-
b
là0
-
c
làfalse
Gán giá trị sau khi khai báo
Có thể gán giá trị cho một biến sau khi nó được khai báo. Điều này hữu ích trong trường hợp giá trị ban đầu không được biết.
Ví dụ
package main
import ("fmt")
func main() {
var student1 string
student1 = "John"
fmt.Println(student1)
}
Hãy tự mình thử » Lưu ý: Không thể khai báo một biến bằng " :=
" mà không gán giá trị cho nó.
Sự khác biệt giữa var và :=
Có một số khác biệt nhỏ giữa var
var :=
:
var | := |
---|---|
Can be used inside and outside of functions | Can only be used inside functions |
Variable declaration and value assignment can be done separately | Variable declaration and value assignment cannot be done separately (must be done in the same line) |
Ví dụ
Ví dụ này cho thấy việc khai báo các biến bên ngoài hàm, với từ khóa var
:
package main
import ("fmt")
var a int
var b int = 2
var c = 3
func main() {
a = 1
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
Hãy tự mình thử »Ví dụ
Vì :=
được sử dụng bên ngoài hàm nên việc chạy chương trình sẽ dẫn đến lỗi.
package main
import ("fmt")
a := 1
func main() {
fmt.Println(a)
}
Kết quả:
./prog.go:5:1: syntax error: non-declaration statement outside function body