go语言中的常量与变量

变量

变量(varible)是所有编程语言中必不可少的组成元素,在我们需要去操作内存上的数据时,如果直接使用内存地址去操作会非常麻烦,所以便有了变量,变量其实是对一块数据存储空间的命名,通过引用变量名来使用这块存储空间。

变量声明

var关键字开头,并且类型信息放在变量名之后,不需要分号结尾。可以单行声明,也可以多行声明。

var num int
var (
	name string   		//字符串
    isOk bool	  		//布尔型
    nums [10]int  		//数组
    point *int    		//指针
    v1 struct{}   		//结构体
    v2 map[string]int   //map
    v3 func(a int)int   //函数
)

上述例子声明之后没有赋值,则初始化为对应类型的零值。整形和浮点型变量默认值为0;字符串变量默认值为空字符串;布尔型变量默认值为false;切片、函数、指针变量默认值为nil

变量初始化

var name string = "Badam" //常规声明
var age 18				  //类型推导
num := 31				  //短变量声明
a, b := 10, 20 			  //一次初始化多个变量
i, j := j, i 			  //i, j互换 

匿名变量

很多函数会返回多个值,但是我们并不需要都使用到,这时可以使用匿名变量:_

func person()(string, int){
    return "Badam", 18
}
func main(){
    _, age := person()
    name, _ := person()
}

匿名函数不占用命名空间,不会分配内存。

短变量声明

短变量声明是在代码中常用的:=

在函数内部使用短变量声明的变量在函数外部不可以使用,最常用的例子是for循环

for i := 0; i < 10; i++{
	fmt.Println(i)
}
fmt.Println(i) //在for循环外部不可以使用for循环定义的简短声明i

根据短变量声明我们引出了作用域

变量的作用域

var num = 31  //在函数体外声明,全局变量,可以使用在整个包内,也可以使用在外部包内(首字母大写)
var Num = 31  //可以在其他包内使用
func main(){
    num := 31 //在函数内部声明,局部变量,作用域为函数内部,函数的参数和返回值也是局部变量
}

常量

常量(const)就是不变的值, 常量只能是bool ,整型,string, 浮点型,常量在定义是必须赋值。

const pi = 3.1415926
const e  = 2.7182  
const (
    pi = 3.1415926
    e = 2.7182
)
//声明多个常量时,如果省略则表示和上面一行的值相同
const(
    n1 = 100 //100
    n2		 //100
    n3		 //100
)

常量的赋值时编译期的行为,所以下面这种行为会导致编译错误。

const num = func()int{
    return 100
}

常量中还有一种常用的预定义常量iota在之前的博客中介绍了,这里不再叙述。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值