3 基本数据类型
458 字
2 分钟
3 基本数据类型
3.基本数据类型
uint
uint88个二进制位的范围0000 0000 ~ 1111 1111 = 0 ~ 1 0000 0000 - 1 = 0 ~ 255
以此类推
uint160 ~ 2^16 - 1int
int8 首位符号位0 000 0000: +0(正数最小值)0 111 1111: +2^7 - 1 = +127(正数最大值)1 000 0001: -1(负数最大值)1 111 1111: -2^7 = -128(负数最小值)浮点型
float32和float64
若没有显示声明,则默认float64
✨字符和字符串
var a byte = 'a' // ascii码fmt.Printf("%c %d \n", a, a) // a 97var a1 uint8 = 97fmt.Printf("%c %d \n", a1, a1) // a 97==================这里将 97 根据 %c 转成了char类型,对应ascii码的 `a`rune与 byte 的对比
| 类型 | 底层类型 | 范围 | 用途 |
|---|---|---|---|
byte | uint8 | 0-255 | ASCII 字符、二进制数据 |
rune | int32 | -2³¹ 到 2³¹-1 | 任何 Unicode 字符 |
var z rune = '中'fmt.Printf("%c %d \n", z, z) // 中 20013| 类型 | 底层类型 | 使用场景 | 优势 |
|---|---|---|---|
byte | uint8 | ASCII 字符、二进制数据 | 表示”这是一个字节” |
rune | int32 | Unicode 字符 | 表示”这是一个字符” |
uint8 | - | 数值计算 | 表示”这是一个 0-255 的数字” |
int32 | - | 数值计算 | 表示”这是一个整数” |
最佳实践:
- 处理 字符 时用
byte(ASCII)或rune(Unicode) - 处理 数字 时用
uint8、int32等 - 这样代码读起来更像是在 描述意图,而不仅仅是 声明类型
所以,byte 和 rune 不是必须的,但它们让代码 更易读、更易维护! 📝
fmt.Println("SHAI\tGOOO\tWIN") // SHAI GOOO WINfmt.Println("YUNBIU\tGOOO\tONE") // YUNBIU GOOO ONEfmt.Println("'SHAI'WIN") // 'SHAI'WINfmt.Println("\"SHAI\"WIN") // "SHAI"WIN (转义 \": ")fmt.Println("\\SHAI\\WIN") // \SHAI\WIN (转义 \\: \)fmt.Println(`abc\\def\n\t\"`) // abc\\def\n\t\"布尔类型
- 默认false
- 不允许强转为bool
- 不参与数值运算
零值问题
只声明,但不赋值,那么这个变量的值就是对应的零值
var q1 intvar q2 float32var q3 float64var q4 stringvar q5 boolfmt.Printf("%#v \n", q1)fmt.Printf("%#v \n", q2)fmt.Printf("%#v \n", q3)fmt.Printf("%#v \n", q4)fmt.Printf("%#v \n", q5)------------------000""false文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章 智能推荐
1
Prisma迁移历史与数据库状态不一致问题排查与解决
golang Prisma迁移历史与数据库状态不一致问题排查与解决
2
1 变量和常量
golang 1 变量和常量
3
2 输入输出
golang 2 输入输出
4
4 数组、切片和Map
golang 4 数组、切片和Map
5
5 判断
golang 5 判断
随机文章 随机推荐