一、常量:不能被修改的变量
//示例
package main
import "fmt"
var number = 99
func main() {
const age int = 1 //定义常量
// 简写 const age = 1
fmt.Println(age)
}
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
1
Process finished with exit code 0
二、常量既可以定在全局也可以在局部,一般定义在全局中。
package main
import "fmt"
const data = 99 //全局常量
const (
p = 3.1415 //全局常量
gender = "men" //全局常量
)
func main() {
const (
v1 = 1 //局部常量
v2 = 2 //局部常量
)
fmt.Println(v1, v2, p, gender)
}
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
1 2 3.1415 men
Process finished with exit code 0
三、iota,定义常量的一个计数器
package main
import "fmt"
func main() {
const (
v1 = iota //从0计数
v2
v3
v4
v5
)
fmt.Println(v1, v2, v3, v4, v5)
}
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
0 1 2 3 4
Process finished with exit code 0
四、iota从指定数开始计数
package main
import "fmt"
func main() {
const (
v1 = iota + 1 //iota + 1
v2
v3
v4
v5
)
fmt.Println(v1, v2, v3, v4, v5)
}
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
1 2 3 4 5
Process finished with exit code 0
五、获取2,4,5,6,7的值,用下划线隔断
package main
import "fmt"
func main() {
const (
v1 = iota + 2
_ //隔断,获取3的值
v2 //依次获取4的值
v3
v4
v5
)
fmt.Println(v1, v2, v3, v4, v5)
}
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
2 4 5 6 7
Process finished with exit code 0
六、有规则的用iota生成连续的常量,如星期定义
package main
import "fmt"
func main() {
const (
Monday = iota + 1
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
)
fmt.Println(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday)
}
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
1 2 3 4 5 6 7
Process finished with exit code 0
0 Comments