8、Go 数据类型:浮点数、切片长度与容量、切片初始化及空切片的使用

Go 数据类型:浮点数、切片长度与容量、切片初始化及空切片的使用

1. 浮点数计算的精度与执行时间权衡

在进行浮点数的加、减、乘、除运算时,为了获得更高的精度,应优先完成乘除运算。例如:

c := 1.0002
fmt.Println(a * (b + c))
fmt.Println(a*b + a*c)

精确结果是 200,030.002,第一个计算的精度较差。不过,优先进行乘除运算有时会影响执行时间,这就需要在精度和执行时间之间做出选择。

Go 的 float32 float64 是近似值,在使用时需遵循以下规则:
- 比较两个浮点数时,检查它们的差值是否在可接受范围内。
- 进行加减法运算时,将数量级相近的运算分组,以提高精度。
- 若一系列运算包含加、减、乘、除,优先进行乘除运算以保证精度。

2. 切片长度和容量的理解

很多 Go 开发者容易混淆切片的长度和容量,理解这两个概念对于高效处理切片的初始化、添加元素、复制和切片操作至关重要。

在 Go 中,切片由数组支持,其数据连续存储在数组数据结构中。切片内部包含一个指向底层数组的指针、长度和容量。长度是切片包含的元素数量,容量是底层数组的元素数量。

以下是初始化切片的示例:

s := make([]int, 3, 6)

这里创建了一个长度为 3、容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值