读书笔记:Go内置数据类型

go 内置数据类型

  1. 基础类型
  • bool(布尔类型)
true,false

布尔型可以和 && 和 || 操作符结合,会有短路行为。

&& 的优先级高于 ||。

  • 整型
int8byteint16intuintuintptrint32int64uint

Unicode 字符 rune 类型 和 int32 是等价的,通常用于表示一个 Unicode 码点。这两个名称可以互换使用。

byte 和 uint8 是等价的,byte 类型一般用于强调数值是一个原始的数据,而不是一个小的整数。

无符号的整数类型 uintptr 没有指定具体的 bit 大小,但足以容纳指针。uintptr 只有在底层编程才需要,特别是 Go 和 C 函数库或操作系统接口相交互的地方。

int 和 int32 是不同的类型,即使 int 的大小也是 32 bit。

  • 浮点类型
float32float64

应该优先使用 float64 类型,因为 float32 类型的累计计算误差很容易扩散,并且 float32 能精确表示的正整数并不是很大。因为 float32 的有效 bit 位只有23个,其它的 bit 位用于指数和符号;当整数大于23bit能表达的范围时,float32 的表示将出现误差。

  • 复数类型
complex64complex128 分别对应 float32 float64 两种浮点数精度。

内置的 complex 函数用于构建复数,内建的 real 和 imag 函数分别返回复数的实部和虚部。

如果一个浮点数或一个十进制整数后面跟着一个i,例如3.141592i或2i,它将构成一个复数的虚部,复数的实部是0。

  • 字符串
string

内置的 len 函数返回一个字符串的字节数目,不是rune字符数目。

所以操作 s[i] 返回第 i 个字节的字节值。

第 i 个字节不一定是字符串的第 i 个字符,因为对于非 ASCII 字符的 UTF8 编码会要两个或多个字节。

  • 操作符将两个字符串连接成一个新字符串。

字符串可以用==和<进行比较;比较通过逐个字节 比较完成的

不变性意味如果两个字符串共享相同的底层数据的话也是安全的,这使得复制任何长度的字符串代价是低廉的,同样切割操作的代价也是廉价的,都没有必要分配新的内存。

  • 字符类型
rune,byte

在go语言中支持2个字符类型,一个是byte(unit8的别名),代表utf8字符串的单个字节的值;另一个是rune,代表unicode的字符

  • 错误类型
error
  1. 复合类型
  • 指针
pointer
  • 数组
array
  • 切片
slice
  • 字典
map
  • 通道
channel
  • 结构体
struct
  • 接口
interface
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值