golang

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

变量被声明之后,系统会自动给变量该类型的零值:

命名的规则遵循驼峰命名法最好,比如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」,关注公众号「灯下独码」

上一篇下一篇

猜你喜欢

热点阅读