三.Go的类型与变量

Go基本类型

  • 布尔型:bool
    长度:1字节
    取值范围:true false
    默认值:false
  • 字节型:byte(uint8)
    长度:1字节
    取值:0~255
    默认值:0
  • 整型/无符号整型:int/uint
    长度:根据运行平台而定32位系统长度为4字节
    64位系统长度为8字节
    默认值:0
  • 8位整型/8位无符号整型:int8/uint8
    长度:1字节
    取值范围:-128127/0255
    默认值:0
  • 16位整型/16位无符号整型:int16/uint16
    长度:2字节
    取值范围:-3276832767/065535
    默认值:0
  • 32位整型/32位无符号整型:int32(rune)/uint32
    长度:4字节
    取值范围:-21474836482147483647/04294967295
    默认值:0
  • 64位整型/64位无符号整型:int64/uint64
    长度:8字节
    取值范围:-92233720368547758089223372036854775807/018446744073709551615
    默认值:0
  • 浮点型:float32/float64
    长度:4字节/8字节
    取值范围:小数位精确到7/15位
    默认值:0
  • 复数:complex64/complex128
    长度:8字节/16字节
    complex64表示用实部和虚由float32构成
    complex128表示用实部和虚由float64构成
    复数是一个数学概念,形如a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位
    默认值:(0+0i)
  • 保存指针的32位/64位整数型:uintptr
    长度:根据运行平台而定32位系统长度为4字节
    64位系统长度为8字节
  • 数组:array
    值类型
    默认值:根据数组的长度和基本类型而定
  • 数组切片:slice
    引用类型
    默认值:根据切片的长度和基本类型而定
  • 结构:struct
    值类型
  • 字符串:string
    值类型
    默认值:一个空字符串""
  • 字典:map
    引用类型
  • 通道:chan
    引用类型
  • 通道:interface
    接口类型
  • 通道:func
    函数类型

Go变量声明与赋值

  • 单个变量的声明赋值
    声明格式:var 变量名称 变量类型
    赋值格式:变量名称=表达式
    声明时赋值:var 变量名称 变量类型(可选)=表达式
    声明时赋值简写格式:变量名称:=表达式
func init() {
    var a int
    a = 1
    var b int = 2
    c := 3//必须在函数体内,全局变量不可用
}
  • 多个变量的声明赋值
    全局变量的声明可使用var()的方式简写
    全局变量的声明不可以省略var,但可使用并行方式
    所有变量都可以使用类型推断
    局部变量不可以使用var()的方式简写,只能使用并行方式
func init() {
    var a, b, c int
    a, b, c = 1, 2, 3
    var d, e, f int = 4, 5, 6
    var g, h, i = 7, 8, 9
    j, k, l := 10, 11, 12
}
  • 变量的类型转换
    Go没有隐式转换,所有类型转换必须显式声明
    转换只能发生在两种相互兼容的类型之间
    类型转换的格式:
    var 变量名称A = 类型名称(变量名称B)
    变量名称A := 类型名称(变量名称B)
func init() {
    var a float32 = 1.5
    b := int(a)
    var c = float32(b)
}

直通车

一.Go开发工具及命令
二.Go编程基础知识
三.Go的类型与变量
四.Go常量与运算符
五.Go控制语句
六.Go数组
七.Go切片slice
八.Go哈希字典map
九.Go函数func
十.Go结构struct

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容