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、容
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



