一、常量:不能被修改的变量

//示例
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

Categories: go

0 Comments

发表评论

Avatar placeholder

邮箱地址不会被公开。 必填项已用*标注