go常量与变量
2018-11-01 本文已影响6人
imuzi
常量
常量使用关键字const,常量的数据类型只能是数字型(整数,浮点和复数)、字符串型和布尔型。
格式:const name type = value
比如:
const a = 1
在go语言中,可以省略类型,因为编译器可以根据常量的值来推断类型。
常量在赋值时,可以使用运算符,比如:
const b = 1/2
但是最好不要使用自定义函数,因为自定义函数在编译期间并不知道能否获取返回的值,所以无法给常量进行赋值。比如:
const c = getSum()
但是内置函数可以使用,比如len()。
常量也支持并行赋值的形式:
const a, b, c = 1, 2, 3
还可以当做枚举使用:
const (
One = 0
Two = 1
Three = 3
)
一般在使用枚举是,使用的是iota作为枚举值
const (
a = iota
b
c = iota + 10
d
)
这里a = 0, b = 1 而 d = 13,这是因为iota会自动+1,在iota后加上具体的数值,就等于当前的iota值加上具体的数值,所以c = 12, d = 13.
iota 在每遇到const关键字是,iota就会重置为0。
变量
变量的声明使用的是var关键字: var name type
也可以声明为指针类型
vat a *int
同时声明多个变量
//一般用于全局变量
var (
a int
b string
)
//或者
var c, d string
变量被声明之后,系统会自动给变量该类型的零值:
- int 0
- float 0.0
- bool false
- string 空字符串
- 指针 nil
命名的规则遵循驼峰命名法最好,比如firstName,lastName。
如果你希望全局变量能被其他包使用,只需要将首字母大写即可:Name。
变量在程序中有自己作用域范围,变量在函数体之外声明,则认为是全局变量,在函数内部声明的则为局部变量,局部变量的作用域只在函数内,参数和返回值也是局部变量。
变量的声明还可以使用简简短声明 := 比如
a := 1
写一个列子,获取当前的操作系统类型:
package main
import (
"fmt"
"runtime"
)
func main() {
var goos string = runtime.GOOS
fmt.Println(goos)
goarch := runtime.GOARCH
fmt.Println(goarch)
}
image
微信搜索「goentry-xyz」,关注公众号「灯下独码」