Go语言学习笔记(语法篇) - 基本数据类型、变量

本文详细解析了Go语言的基本数据类型及其大小、默认值,包括bool、int系列、float32、float64和string。同时介绍了Go语言的变量声明规则,包括类型声明、值赋值及编译器的类型推断机制。文中还讨论了Go语言中声明未使用的变量会引发错误的情况,并提供了解决方法。此外,文章提到了Go语言中const关键字的使用,以及如何通过iota快速声明枚举值。

基本数据类型

类型        大小      默认值
bool      1bits        false
int8       8bits        0
int16     16bits       0
int32     32bits       0
int64     64bits       0
float32  32bits       0
float64  64bits       0
string                  ""

byte,这个等同于int8,属于它的别名
int,没有显示的声明int是多少位的,那么它会根据平台来自行决定,如32位的系统int就是32位的,64位的系统int就是64位的。

变量声明

Go语言是强类型语言,但它的变量声明比较灵活。
var 变量名 类型 = 值
var 变量名 = 值
变量名 := 值

如:

var a int = 1
var b = 2
c := 3
var a, b int = 1, 2
var c, d = 3, 4
e, f := 4, 5

在没有显示的声明类型的时候,Go语言编译器会根据赋的值进行类型推断,不过要注意一点,在声明了变量后、并没有使用这个变量的时候,编译会报错 e declared and not used。这点我也很不理解,为什么Go编译器要做这种校验,哪怕给一个警告也比这样要好吧,如果有谁知道这样的好处请告诉我一下,感谢。
如果不想让编译器对声明未使用的变量报错,可以使用_来代替,_为一个特殊的变量,任何赋给它的值都将被抛弃。


Go语言不支持不同类型间的隐式转换,如以下代码片断编译器会报出invalid operation: a + b (mismatched types int32 and int64)

var a int32 = 10
var b int64 = 20
c := a + b
fmt.Println(c)

所以要想让不同类型间进行计算,需要进行强制转换

var a int32 = 10
var b int64 = 20
c := int64(a) + b
fmt.Println(c)


const可以声明一个常量,也可以当做枚举来使用

const a int = 100
const b = 200
const (
    APPLE  = iota
    ORANGE = iota
    BANANA = iota
)
iota可以用来代表枚举值,从0开始,往下每次会+1,上面的APPLE = 0, ORANGE = 1, BANANA = 2。也可以只写一个iota,下面的都省略,效果与上面的一样。
const a int = 100
const b = 200
const (
    APPLE  = iota
    ORANGE
    BANANA
)



转载于:https://my.oschina.net/u/855347/blog/127342

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值