Constant in Golang
In many programming languages, there is a special variable called a constant. A constant is a variable that the value cannot be changed. To declare a constant variable in Go, use the const
keyword.
The declaration of a constant can be seen in this code below.
const pi = 3.14 //1. using const keyword followed by constant name
const myConst string = "test" //2. using const keyword with specified type
const (
a = 12
b = 23
c = 34
) //3. declare multiple constants easily with const(..) just like declaring variables
Here is the complete code example using const.
package main
import "fmt"
const pi = 3.14
const myConst string = "test"
const (
a = 12
b = 23
c = 34
)
func main() {
area := pi * 7 * 7
fmt.Println("Area of circle : ", area)
fmt.Println("Other const", myConst, a, b, c)
}
The output from that code is :
Area of circle : 153.86
Other const test 12 23 34
If we try to change a value from a const, this code throws an error
package main
import "fmt"
func main() {
const a = 12
a = 45 //change a value from const
fmt.Println("value of a", a)
}
The error message from that code :
.\main.go:7:4: cannot assign to a
iota
There is a special const in Go called iota
. iota
is a const that has a default value equal to 0 and will increase automatically by 1 if assigned to another constant.
Here is the code example using iota.
package main
import "fmt"
const (
a = iota // iota = 0
b = iota // iota = 1
c = iota // iota = 2
)
const d = iota // iota value reset to 0 because assign into another variable with const keyword
func main() {
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
fmt.Println(d)
}
The output from that code :
0
1
2
0
Another example of using iota can be seen in this code.
package main
import (
"fmt"
)
const (
_ = iota //ignore the default value with _ notation
bronze = 10 * iota //iota = 1
silver = 10 * iota // iota = 2
gold = 10 * iota // iota = 3
)
func main() {
score1 := 200 * bronze
score2 := 200 * silver
score3 := 200 * gold
fmt.Println("The scores : ", score1, score2, score3)
}
The output from that code :
The scores : 2000 4000 6000
Sources
Read more about constants in Go here
I hope this article helps to learn the Go programming language. If you have any thoughts or feedback, you can write it in the discussion section below.