变量是指在内存中开辟一块空间用来存储内容的内存地址。
定义变量的方式有如下4种:
var 变量名 变量类型 [= 变量初始值]
var a int = 10
当变量定义时,未设置初始值,会默认的根据变量的类型设置一个初始值。
var 变量名 变量类型
var a int
不同的数据类型的初始值情况如下:
1.整型和浮点型:0,0.0
2.字符串变量:空
3.布尔类型:bool
4.指针、函数:nil
5.数组:0
数组的默认值是根据定义的数据类型和数组长度来确定的。示例代码如下:
6.切片:[]
// 变量默认值,示例代码
func main() {
// 整型默认值
var a int// 默认值为0
// 数组的默认值
var arr[3] int32 // 打印的结果为:[0,0,0]
// 切片的默认值
var sli[] int // 打印的结果为:[]
}
var 变量名 := 初始值 或 变量名1, 变量名2,变量名3, .... 变量名n = 变量名1值,变量名2值,变量名3值,....变量名n值
var a := 10
使用简短语法需要注意如下几点
var 变量名1,变量名2,变量名2.... 变量类型 = 值1,值2,值3,....,变量n
var a,b,c int = 10,202,30
var (
变量名 变量类型 [= 值],
变量名 变量类型 [= 值],
变量名 变量类型 [= 值],
变量名 变量类型 [= 值]
)
var (
a int = 10
b float32 = 1.0
c bool
)
因式分解法定义,要手动给每个变量设置一个初始值
// 该方式是错误的,提示syntax error: unexpected newline, expecting type
var (
a = 10
b
)
var 变量1,变量2,....变量n int
变量1,变量2,....变量n = 1,2,....,n
多重赋值时需要注意的时,变量的类型一定需要一致
在编码过程中,可能会遇到没有名称的变量、类型或方法。虽然这不是必须的,但有时候这样做可以极大地增强代码的灵活性,这些变量被统称为匿名变量。
匿名变量使用"_"代替。
e, _ := 200, 100
f, _, _ := 100, 200, 300
使用匿名变量需要注意如下几点
1.任何类型都可以赋值给匿名变量。
2.赋值给匿名变量的值总将被抛弃。
3.匿名变量的值不能在后续的代码中使用。
4.匿名变量也不能做运算操作。
5.匿名变量不会暂用内容,也不会分配内容,多个匿名变量是不会发生冲突的。
var a int // 全局变量
func main() {
var b int // 局部变量
fu(c) // 形参
}
func fu(d){ // 实参
return d
}
变量的作用域分为如下几种情况:
1.全局变量。
2.局部变量。
3.参数(形参、实参)。
4.当全局变量和局部变量的名称一致时,则优先使用局部变量。
5.局部变量一旦声明就必须使用,全局变量可以声明不使用。
6.局部变量在函数被调用完之后,就会自动销毁。
7.如果在当前的包引入外部包的全局变量,这个全局变量的后首之母必须是大写。
go语言中是不存在类型之间进行隐式转换(PHP支持),所有的类型转换必须是显示转换。但是显示转换也是基于数据类型相互兼容的情况下。
这里的数据兼容指的是同一种类型,比如float和int是数字类型,可以转换。int和bool(bool的值只有true和false)不是同一种数据类型,是不能进行转换的。
func main() {
var a float32 = 1.0// a的默认值是0
b := int(a)// 打印b的值就是1
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。