1.1 常量概念
相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。如写web程序时返回的状态码定义成常量。常量的声明和变量声明非常类似,只是把var
换成了const
,常量在定义的时候必须赋值。
1.2 常量的定义格式:
const identifier [type] = value
例子:
package main
import "fmt"
var (
name string
)
const status int = 200
func main(){
fmt.Println("IM wwn")
name ="wwn"
Welcome := "hello"
fmt.Printf("name: %s\n",name) //%s为占位符,用name变量替换
fmt.Printf("Welcome: %s\n",Welcome)
fmt.Println("status=",status)
}
输出为
IM wwn
name: wwn
Welcome: hello
status= 200
1.3 iota
iota 在 const关键字出现时将被重置为 0( const 内部的第一行),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
iota 可以被用作枚举值:
package main
import "fmt"
const(
a = iota //0
b = iota //1
c = iota //2
)
func main(){
fmt.Println(a,b,c)
} //输出0,1,2
package main
import "fmt"
var (
name string
)
const(
status = 200
a = iota
b = iota
c = iota
)
func main(){
name = "wwn"
fmt.Printf("name: %s\n",name)
fmt.Println(status,a,b,c)
}
//输出
name: wwn
200 1 2 3
常量赋值a=1 下面b如果没赋值默认和上面相同,iota持续加一
package main
import "fmt"
func main(){
const(
a =iota
b
c
d = "wwn"
e
f = 100
g
h = iota
i
)
fmt.Println(a,b,c,d,e,f,g,h,i)
}
输出 0 1 2 wwn wwn 100 100 7 8