Go语言中...(三个点)的使用几个常见情况

①可变参数函数(Variadic Functions): 在函数定义中,“…” 可以用于表示可变参数。这使得函数可以接受任意数量的参数。例如:

func sum(nums ...int) int {
   
    total := 0
    for _, num := range nums {
   
        total += num
    }
    return total
}

func main() {
   
    result := sum(1, 2, 3, 4, 5)
    fmt.Println(result) // 输出: 15
}

②如果一个切片后面跟着 “…”,它会被展开为一个个的元素,如下输出15:

import "fmt"

func main() {
   
	nums := []int{
   1, 2, 3, 4, 5}
	fmt.Println(sum(nums...))
}

func sum(nums ...int) int {
   
	total := 0
	for _, num := range nums {
   
		total += num
	}
	return total
}

但是去掉fmt.Println(sum(nums...))的三个点,报错:cannot use nums (variable of type []int) as int value in argument to sum
这里传递的不是切片是多个整数!!!比如如下输出12

func main() {
   
	nums := []int{
   1, 2, 3, 4, 5}
	fmt.Println(sum(nums[2:]...))
}

func sum(nums ...int) int {
   
	total := 0
	for _, num := range nums {
   
		total += num
	}
	return total
}

以及fmt.Println(sum(nums[2]))输出3

③在数组的定义中,如果使用 “…” 表示长度,Go 语言会根据初始化值的个数自动计算数组的长度。数组的长度是固定的,声明时需要指定数组的长度。切片是动态长度的,声明时不需要指定长度。

相关推荐

  1. Go语言...(使用常见情况

    2024-02-03 07:24:02       26 阅读
  2. 常见Python技术难题

    2024-02-03 07:24:02       17 阅读
  3. C++常用类型选择模板函数

    2024-02-03 07:24:02       34 阅读
  4. 文本转语音常用python库

    2024-02-03 07:24:02       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-03 07:24:02       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-03 07:24:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-03 07:24:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-03 07:24:02       18 阅读

热门阅读

  1. qt编程---->qml

    2024-02-03 07:24:02       29 阅读
  2. node版本对应的npm版本

    2024-02-03 07:24:02       30 阅读
  3. PyQt子线程处理业务事件

    2024-02-03 07:24:02       31 阅读
  4. Ubuntu 安装 Docker 详细步骤

    2024-02-03 07:24:02       34 阅读
  5. nuxt.js中使用axios以及二次封装

    2024-02-03 07:24:02       29 阅读
  6. WPF简介

    WPF简介

    2024-02-03 07:24:02      30 阅读