一、数据类型概要
go语言中有四种数据类型:基础类型,复合类型,引用类型,接口类型。
| 类型 | 名称 | 长度 | 零值 | 说明 | 
|---|---|---|---|---|
| bool | 布尔类型 | 1 | false | 其值不为真即为假,不可以用数字代表true或false | 
| byte | 字节型 | 1 | 0 | uint8别名 | 
| rune | 字符类型 | 4 | 0 | 专用于存储unicode编码,等价于uint32 | 
| int, uint | 整型 | 4或8 | 0 | 有符号32位或无符号64位 | 
| int8 | 整型 | 1 | 0 | -128~ 127, | 
| uint8 | 整型 | 1 | 0 | 0~ 255 | 
| int16 | 整型 | 2 | 0 | -32768 ~ 32767, | 
| uint16 | 整型 | 2 | 0 | 0 ~ 65535 | 
| int32 | 整型 | 4 | 0 | -2147483648到2147483647 | 
| uint32 | 整型 | 4 | 0 | 0到4294967295(42亿) | 
| int64 | 整型 | 8 | 0 | -9223372036854775808到9223372036854775807 | 
| uint64 | 整型 | 8 | 0 | 0到18446744073709551615 ( 1844京) | 
| float32 | 浮点型 | 4 | 0.0 | 小数位精确到7位 | 
| float64 | 浮点型 | 8 | 0.0 | 小数位精确到15位 | 
| complex64 | 复数类型 | 8 | ||
| complex128 | 复数类型 | 16 | 64位实数和虚数 | |
| uintptr | 整型 | 4或8 | 足以存储指针的uint32或uint64整数 | |
| strina | 字符串 | "” | utf-8字符串 | 
二、布尔型
在 Go 语言中,以关键字 bool 来声明布尔类型。布尔类型只有 true 和 false 两种值。
package main
import "fmt"
func main() {
    var a bool
    a = true
    fmt.Println(a)
    fmt.Printf("%t", a)
}

三、字符类型
Go 语言中,字符串的每一个元素叫做字符,主要分为以下两种:
- uint8 类型,或者叫 byte 型,代表了 ASCII 码的一个字符。
 - rune 类型,代表了一个 UTF-8 字符。通常情况下,当需要处理中文、日文、韩文等复合字符时,需要用到 rune 类型。
 
package main
import "fmt"
func main()  {
    var a byte = 'q'
    fmt.Printf("%d %T\n", a, a) // byte 的实际类型其实是个 uint8, 对应的 ASCII 编码为 113
    var b rune = '犬'
    fmt.Printf("%d %T\n", b, b) // rune 的实际类型其实是 int32, 对应的 Unicode 编码为 29356
}











