【Golang】变量

本文介绍了Go语言中的变量声明方式,包括不同类型变量的声明、赋值、简化的声明方式以及类型转换等。同时,还讲解了Go语言中数组的声明与赋值方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

变量的声明

在Java中我们声明变量的方式为:

int a = 16;

而在Go中,变量的数据类型在变量名后面。

var a int = 16

当然,变量定义和赋值可以放在不同的行。

var a int // 相当于 var a int = 0
a = 32

在一行中,我们也可以声明多个变量。

var a, b int = 3, 2

如果不指定具体类型,系统会判断变量的值,从而给这个变量一个默认类型。

var a = 3 // 相当于 var a int = 3
var b = 0.1 // 相当于 var b float64 = 3.1
var c = true // 相当于 var c bool = true
var d, e = 3, 2.2 // 相当于 var d int = 3; var e float64 = 2.2

还有一种简化的写法:

a := 3

这种简化写法与原来的写法不能完全等价,比如在for循环语句中,不能使用var进行初始化。

for i := 0; i < 3; i ++ {
	fmt.Println("aaa")
}

如果用var的话,会报错。

# command-line-arguments
.\main.go:6:10: syntax error: var declaration not allowed in for initializer

类型转换

Go似乎不会进行自动类型转换,当我用int8类型的a与int16类型的b相加时,程序会出现错误。

# command-line-arguments
.\main.go:8:12: invalid operation: a + b (mismatched types int8 and int16)

所以要想实现二者相加,我们需要手动进行类型转换。

var a int8 = 5
var b int16 = 4
var c = a + int16(b)

字符

Go没有char类型,取而代之的是byte,我们可以用下面这种方式来检测一下byte的数据类型。

var a byte = 'A'
fmt.Printf("%T", a)

我们发现,在控制台中,系统打印了一行uint8(无符号8位整型数),由此我们可以认为byte是uint8的别名。

如果我们直接打印变量上面代码中的变量,我们只会得到它的整数值,那么要怎样才能得到这个字符呢?通过Printf格式化输出。

var a byte = 65
fmt.Printf("%c", a)

数组

对于数组,我们可以通过以下方式进行声明:

var a [3]int = [3]int{1, 2}
var b = [2]int{0, 1}
a := [2]int{1}

上面的的数组中,{}中的数值与数组中前部分连续的元素相匹配,如果我们知道的元素值并非连续的,我们可以为数值前面加上索引。

var a = [6]int{1, 3, 4:6, 5:7}

我们也可以将定义和赋值分开。

var a [3]int
a[0] = 1
a[1] = 3

数组中的元素的默认值与元素的数据类型相关,例如,int类型的元素,其默认值为0。

如果我们在{}中输入的所有的元素,那么在[]中便可以用…替代数组的长度。

a := [...]int{1, 2, 3, 4}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值