当前位置:  首页>> 技术小册>> GO面试指南

在 Go 语言中,通常建议在函数之间传递切片而不是数组,原因如下:

长度可变:切片可以随时增加或删除元素,而数组的长度是固定的,因此传递切片可以更灵活地处理数据。

内存占用:切片只是对底层数组的引用,因此传递切片比传递数组更节省内存。

代码简洁:使用切片可以减少代码量,同时也更易于阅读和维护。

下面是一个使用切片传参的示例代码:

  1. package main
  2. import (
  3. "fmt"
  4. )
  5. // 用切片作为参数的函数
  6. func sum(numbers []int) int {
  7. result := 0
  8. for _, n := range numbers {
  9. result += n
  10. }
  11. return result
  12. }
  13. func main() {
  14. // 定义一个数组
  15. nums := [5]int{1, 2, 3, 4, 5}
  16. // 将数组转换成切片,并传递给 sum 函数
  17. sumResult := sum(nums[:])
  18. fmt.Println(sumResult) // 输出:15
  19. }

在上面的代码中,我们定义了一个包含 5 个整数的数组 nums。接着,我们调用 sum 函数,并将 nums 数组转换成切片 nums[:] 作为函数的参数进行传递。函数 sum 对切片进行遍历,并计算所有元素的总和,最终返回结果。在 main 函数中,我们输出了函数 sum 的返回值,即数组元素的总和。

可以看到,在使用切片作为参数时,函数的定义和调用与使用数组作为参数时并没有太大的区别,但使用切片可以使代码更简洁、灵活和节省内存。


该分类下的相关小册推荐: