Golang数据类型

数据类型的基本介绍

数据类型的基本介绍

Go中的每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间。具体来说,Go中的数据类型可分为基本数据类型和复杂数据类型。如下:

在这里插入图片描述

基本数据类型

整数类型

整数类型

Go中的整数类型如下:

类型 有无符号 占用存储空间 表数范围
int8 1字节 [ − 2 7 , 2 7 − 1 ] [-2^{7},2^{7}-1] [27,271]
int16 2字节 [ − 2 15 , 2 15 − 1 ] [-2^{15},2^{15}-1] [215,2151]
int32 4字节 [ − 2 31 , 2 31 − 1 ] [-2^{31},2^{31}-1] [231,2311]
int64 8字节 [ − 2 63 , 2 63 − 1 ] [-2^{63},2^{63}-1] [263,2631]
uint8 1字节 [ 0 , 2 8 − 1 ] [0,2^{8}-1] [0,281]
uint16 2字节 [ 0 , 2 16 − 1 ] [0,2^{16}-1] [0,2161]
uint32 4字节 [ 0 , 2 32 − 1 ] [0,2^{32}-1] [0,2321]
uint64 8字节 [ 0 , 2 64 − 1 ] [0,2^{64}-1] [0,2641]
int 32位系统占用4字节,64位系统占用8字节 [ − 2 31 , 2 31 − 1 ] [-2^{31},2^{31}-1] [231,2311] [ − 2 63 , 2 63 − 1 ] [-2^{63},2^{63}-1] [2
### Golang 数据类型概述 在 Go 语言中,支持多种内置的数据类型。这些数据类型分为基本类型和复合类型。 #### 基本数据类型 Go 支持以下几种基本数据类型[^3]: - **布尔类型 (`bool`)** 表示真或假的逻辑值。 - **数值类型** - 整形: - `int8`, `int16`, `int32`, `int64`: 有符号整数 - `uint8`, `uint16`, `uint32`, `uint64`: 无符号整数 - `byte`: 同义于 `uint8` - `rune`: 同义于 `int32`,用于表示 Unicode 码点 - `int`, `uint`: 平台相关的默认整型大小 - 浮点型: - `float32`, `float64` - 复杂浮点型: - `complex64`, `complex128` - **字符串 (`string`)** 字符串是一组不可变字符序列,由双引号包围。 #### 查看变量的字节大小和数据类型 为了获取变量的具体信息,在程序运行期间可以通过特定函数来实现这一点。例如,要打印出一个变量的实际占用空间以及其具体类型,可以使用如下方式[^4]: ```go package main import ( "fmt" "unsafe" ) func main() { var i int = 100 fmt.Printf("i 的类型:%T\n", i) fmt.Printf("i 占用的空间大小:%d bytes\n", unsafe.Sizeof(i)) } ``` 这段代码展示了如何利用标准库中的 `fmt` 包来进行格式化输出,并借助 `unsafe.Sizeof()` 函数计算给定表达式的存储需求。 #### 显式类型转换 值得注意的是,在 Go 中不同类型之间的赋值操作不会发生隐含的自动转型;相反地,程序员必须通过显示的方式完成这一过程。对于简单的数值类型间转化,遵循这样的模式[^5]: ```go var a uint8 = 255 var b int = int(a) // 将 uint8 转换为 int 类型 ``` 这种设计有助于减少潜在错误并提高代码的安全性和可读性。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2021dragon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值