作者:看那个码农
公众号:看那个码农
上期内容介绍了Go语言学习之力扣-移除元素|Go主题月
- 移除元素
本篇内容将继续带领大家走进Go语言的世界。
1.本文简介
Go语言学习之:=与=的区别。
在Go语言中:=与=这两个符号我们经常看见,初学者也常常把这两个符号混淆。
下面我们就来谈谈这两个符号的区别。
2.定义上的区别
=是赋值语句,但是此处的变量必须提前声明好类型,或者在声明的同时赋值。:=是声明类型并赋值,自动匹配变量类型,省去了声明变量类型操作,也就是你可以不声明,在赋值使用的时候多加个冒号就可以了。
3.使用上的区别
1.=要和关键字var一起使用。
var可以在函数中使用,也可以在函数外使用。:=只能在函数中使用,所以只能定义局部变量。
var a = 3 // 可以省略类型
var b int = 5 // 与关键词var使用时候的完整形式
c := 3 // 直接声明类型并赋值
例如下面案例所示:
package main
import "fmt"
func main(){
var a=3 // 可以省略类型
var b int =4 // 与关键词var使用时候的完整形式
c:=5 // 直接声明类型并赋值
fmt.Printf("a的值为:%v\n",a)
fmt.Printf("b的值为:%v\n",b)
fmt.Printf("c的值为:%v",c)
}
输出为:
2.用var定义,=赋值之后,还可以改变。但是用:=定义的变量不能改变值。
c :=5
c :=6//提示错误,不能声明类型后,再声明类型
c = 5//正常
例如下面案例所示:
package main
import "fmt"
func main(){
var a=3 // 可以省略类型
var b int =4 // 与关键词var使用时候的完整形式
c:=5 // 直接声明类型并赋值
c:=6
fmt.Printf("a的值为:%v\n",a)
fmt.Printf("b的值为:%v\n",b)
fmt.Printf("c的值为:%v",c)
}
输出为:
上述案例中:=定义的变量c,不能声明类型后,再声明类型
正确的用法如下:
:=定义的变量c,若想再对c重新赋值,可以使用=
package main
import "fmt"
func main(){
var a=3 // 可以省略类型
var b int =4 // 与关键词var使用时候的完整形式
c:=5 // 直接声明类型并赋值
c =6
fmt.Printf("a的值为:%v\n",a)
fmt.Printf("b的值为:%v\n",b)
fmt.Printf("c的值为:%v",c)
}
输出为:
3.var和=可以平行定义并赋值
例如案例一与案例二所示:
案例一声明变量时省略类型:
package main
import (
"fmt"
"reflect"
)
func main(){
var a,b=3,4.5 // 可以省略类型
fmt.Printf("a的类型为%v,值为:%v\n",reflect.TypeOf(a),a)
fmt.Printf("b的类型为%v,值为:%v\n",reflect.TypeOf(b),b)
}
输出为:
案例二声明变量时不省类型:
package main
import (
"fmt"
"reflect"
)
func main(){
var a,b float32=3,4.5 // 可以省略类型
fmt.Printf("a的类型为%v,值为:%v\n",reflect.TypeOf(a),a)
fmt.Printf("b的类型为%v,值为:%v\n",reflect.TypeOf(b),b)
}
输出为:
:=也可以这样做
例如下面的案例所示:
package main
import (
"fmt"
"reflect"
)
func main(){
a,b :=3,4.5 // 可以省略类型
fmt.Printf("a的类型为%v,值为:%v\n",reflect.TypeOf(a),a)
fmt.Printf("b的类型为%v,值为:%v\n",reflect.TypeOf(b),b)
}
输出为:
如果你觉得这篇内容对你有帮助的话:
1、点赞支持下吧,让更多的人也能看到这篇内容
2、关注公众号:看那个码农,我们一起学习一起进步。