基本类型

  • 布尔型:bool
    • 长度 : 1字节
    • 取值范围:true ,false
  • 整型:int/uint
    • 根据运行平台可能为32位或64位
  • 8位整型:int8/uint8
    • 长度:1字节
    • 取值范围:-128~127/0~255
  • 字节型:byte (uint8别名)
  • 16位整型:int16/unint16
    • 长度:2字节
  • 32位整型:int32(rune)/uint32
    • 长度:4字节
  • 64位整型:int64/uint64
    • 长度:8字节
  • 浮点型:float32/float64

    • 长度:4/8字节
    • 小数位:精确到7/15小数位
  • 复数:complex64/complex128

    • 长度:8/16字节
  • 足够保存指针的32位或64位整数型:uintptr

  • 其他值类型:

    • array、struct、string
  • 引用类型

    • slice、map、chan
  • 接口类型:interface
  • 函数类型:func

单个变量的声明与赋值

1
2
3
4
5
6
7
8
9
10
11
12
var a int //变量的声明
a = 123 //变量的赋值
//变量声明的同时赋值
var b int = 321
//上行的格式可省略变量类型,由系统推断
var c = 321
//变量声明与赋值的最简写法
d := 456

多个变量的声明与赋值

  • 全局变量的声明可使用var()的方式进行简写
  • 全局变量的声明不可以省略var,但可使用并行方式
  • 所有变量都可以使用类型推断
  • 局部变量不可以使用var()的方式简写,只能使用并行方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var (
name = "hundredlee"
name,age = "hundred",18
)
var a,b,c,d int
a,b,c,d = 1,2,3,4
var a,b,c,d = 1,2,3,4
var a,b,c,d int = 1,2,3,4
a,b,c,d := 1,2,3,4

变量的类型转换

  • Go中不存在隐式转换,所有类型转换必须显式声明
  • 转换只能发生在两种互相兼容的类型之间
  • 类型转换的格式:
    • [:]= ()
1
2
3
4
5
6
7
//在相互兼容的两种类型之间进行转换
var a float32 = 1.1
b := int(a)
//以下表达式无法通过编译
var c bool = true
d := int(c)