iota với khai báo hằng số trong Go
Từ khoá iota trong Go được dùng để đơn giản hoá việc khai báo hằng số tăng dần. iota có thể được sử dụng trong các biểu thức. Giá trị của iota được reset về 0 khi từ khoá const xuất hiện (tức là iota = 0 khi có một khối khai báo hằng số const) và được tăng dần sau mỗi dòng khai báo hàm số. Một vài ví dụ:
- Const với iota
const (
Khong = iota
Mot = iota
Hai = iota
)
func main() {
fmt.Println("Khong:", Khong)
fmt.Println("Mot:", Mot)
fmt.Println("Hai:", Hai)
}
Kết quả:
Khong: 0
Mot: 1
Hai: 2
- Const với iota (tt)
const (
Khong = iota
Mot
Hai
)
func main() {
fmt.Println("Khong:", Khong)
fmt.Println("Mot:", Mot)
fmt.Println("Hai:", Hai)
}
Kết quả:
Khong: 0
Mot: 1
Hai: 2
Hai ví dụ trên có cùng output -> không cần lặp lại "iota" sau mỗi lần khai báo hàm số.
- iota với một số cách dùng đặc biệt trong khai báo hàm số
const (
Khong = iota
_
//comment
Hai
Ba
)
func main() {
fmt.Println("Khong:", Khong)
fmt.Println("Hai:", Hai)
fmt.Println("Ba:", Ba)
}
Kết quả:
Khong: 0
Hai: 2
Ba: 3
với _, iota sẽ vẫn tăng lên 0 + 1 = 1
với empty line, iota skip = 1
với comment, iota skip = 1
- iota với biểu thức
const (
_ = iota // Ignore first value by assigning to blank identifier
KB = 1 << (10 * iota) // KB = 1 << 10 (1024)
MB // MB = 1 << 20 (1048576)
GB // GB = 1 << 30 (1073741824)
TB // TB = 1 << 40 (1099511627776)
)
func main() {
fmt.Println("KB:", KB) // 1024
fmt.Println("MB:", MB) // 1048576
fmt.Println("GB:", GB) // 1073741824
fmt.Println("TB:", TB) // 1099511627776
}
KB: 1024
MB: 1048576
GB: 1073741824
TB: 1099511627776
- Nhiều khai báo const với iota
const (
A = iota
B
)
const (
C = iota
D
)
func main() {
fmt.Println("A:", A)
fmt.Println("B:", B)
fmt.Println("C:", C)
fmt.Println("D:", D)
}
A: 0
B: 1
C: 0
D: 1
All rights reserved