猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
Go中的可选参数?
Go可以有可选参数吗?还是可以只定义两个具有相同名称和不同数量参数的函数?
慕沐林林
浏览 258
回答 3
3回答
慕无忌1623718
Go没有可选参数,也不支持方法重载:如果方法分派也不需要进行类型匹配,则可以简化方法分派。其他语言的经验告诉我们,使用具有相同名称但签名不同的多种方法有时会很有用,但在实践中也可能会造成混淆和脆弱。在Go的类型系统中,仅按名称进行匹配并要求类型一致是简化的主要决定。
0
0
0
慕运维8079593
一种实现类似可选参数的好方法是使用可变参数。该函数实际上会接收您指定的任何类型的切片。func foo(params ...int) { fmt.Println(len(params))}func main() { foo() foo(1) foo(1,2,3)}
0
0
0
一只萌萌小番薯
您可以使用包含以下参数的结构:type Params struct { a, b, c int}func doIt(p Params) int { return p.a + p.b + p.c }// you can call it without specifying all parametersdoIt(Params{a: 1, c: 9})
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Go
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续