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

前端之家收集整理的这篇文章主要介绍了Go语言学习笔记(语法篇) - 基本数据类型、变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

基本数据类型

类型大小 默认值
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 变量名 = 值
变量名 := 值

如:

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

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


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

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

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

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


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

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

猜你在找的Go相关文章