前言:在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。
一、数字类型
有符号整数采用2的补码形式表示,也就是最高bit位用来表示符号位,一个n-bit的有符号数的值域是从-2^{n-1}−2n−1到2^{n-1}-12n−1−1。无符号整数的所有bit位都用于表示非负数,值域是0到2^n-12n−1。例如,int8类型整数的值域是从-128到127,而uint8类型整数的值域是从0到255。
1.1 整型
序号 | 类型和描述 |
---|---|
1 | uint8: 无符号 8 位整型 (0 到 255) |
2 | uint16: 无符号 16 位整型 (0 到 65535) |
3 | uint32: 无符号 32 位整型 (0 到 4294967295) |
4 | uint64: 无符号 64 位整型 (0 到 18446744073709551615) |
5 | int8: 有符号 8 位整型 (-128 到 127) |
6 | int16: 有符号 16 位整型 (-32768 到 32767) |
7 | int32: 有符号 32 位整型 (-2147483648 到 2147483647) |
8 | int64: 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807) |
1.2 浮点型
Go语言提供了两种精度的浮点数,float32和float64。它们的算术规范由IEEE754浮点数国际标准定义,该浮点数规范被所有现代的CPU支持。
序号 | 类型和描述 |
---|---|
1 | float32: IEEE-754 32位浮点型数 |
2 | float64: IEEE-754 64位浮点型数 |
3 | complex64: 32 位实数和虚数 |
4 | complex128: 64 位实数和虚数 |
演示示例:
package main
import (
"math"
"fmt"
)
func main() {
maxuint := uint64(math.MaxUint64)
fmt.Println("maxuint is :",maxuint)
fmt.Printf("maxfloat32 is :%v\n",math.MaxFloat32)
fmt.Printf("maxfloat64 is :%v\n",math.MaxFloat64)
}
运行结果:
maxuint is : 18446744073709551615
maxfloat32 is :3.4028234663852886e+38
maxfloat64 is :1.7976931348623157e+308
1.3 其他数字类型
序号 | 类型和描述 |
---|---|
1 | byte: uint8的类型别名 |
2 | rune: int32的类型别名 |
3 | uint: 32 或 64 位 |
4 | int: 32 或 64 位 |
5 | uintptr: 无符号整型,用于存放一个指针 |
二、布尔型
一个布尔类型的值只有两种:true和false。if和for语句的条件部分都是布尔类型的值,并且==和<等比较操作也会产生布尔型的值。
三、字符串
字符串是一种值类型,且值不可变,即创建某个文本后你无法再次修改这个文本的内容;更深入地讲,字符串是字节的定长数组。
Go 支持以下 2 种形式的字面值:
解释字符串:该类字符串使用双引号括起来,其中的相关的转义字符将被替换
\a 响铃
\b 退格
\f 换页
\n 换行
\r 回车
\t 制表符
\v 垂直制表符
\' 单引号 (只用在 '\'' 形式的rune符号面值中)
\" 双引号 (只用在 "..." 形式的字符串面值中)
\\ 反斜杠
非解释字符串:该类字符串使用反引号括起来
`This is a raw string \n` 中的 `\n` 会被原样输出
为了方便大家交流,本人开通了微信公众号(关注看更多精彩)和QQ群,QQ群1(291519319)和QQ群2(659336691)。喜欢技术的一起来交流吧
有疑问加站长微信联系(非本文作者)