You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Golang中能否为多个同类型函数参数合并声明类型?

问题

我有如下Go代码(实际代码的简易抽象版本):

package fiction      

import "fmt"

func doSomething(height int, width int, printMe string) int {
  fmt.Println(printMe)
  return height * width
}

我想将函数声明中的height int, width int部分改为height, width int的形式,修改后代码如下:

package fiction      

import "fmt"

func doSomething(height, width int, printMe string) int {
  fmt.Println(printMe)
  return height * width
}

请问这种写法是否可行?另外我希望避免使用可变参数,但若这是唯一解决方案也可告知(不过对我当前场景不适用)。

回答

这种写法完全可行,这是Go语言原生支持的参数声明语法:当多个连续参数的类型相同时,可以只在最后一个参数后声明一次类型,前面的参数省略类型声明,编译器会自动推断它们的类型与最后一个参数一致。

这种写法和可变参数没有任何关联,可变参数的语法是在类型前加...(比如args ...int),用于接收任意数量的同类型参数,和你这里合并同类型参数声明的场景完全不同。你修改后的代码不仅符合Go的语法规范,还让函数声明更简洁,是推荐的写法。

内容的提问来源于stack exchange,提问作者ellis hogan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 15:24:53