// Both parameters are optional, use empty string for default valuefuncConcat1(a string,b int)string{ifa==""{a="default-a"}ifb==0{b=5}returnfmt.Sprintf("%s%d",a,b)} go的一大特点就是所有的变量都必须经过初始化。那如果在函数内部读取到参数值为初始化值,即可进行对应的操作。 但是这种方法...
如果我们要实例化这个函数,timeout,trynums这个是必须要传的,那如果我不想传呢,一般可能是通过传对象(struct,map)或定义多个func,感觉都不太方便。 func NewClient(address string){} func NewClientNoTimeout(address string,trynums int){} 另一种传一个对象 type Options struct{ timeout int, trynums int ...
go的一大特点就是所有的变量都必须经过初始化。那如果在函数内部读取到参数值为初始化值,即可进行对应的操作。 但是这种方法无法解决设置参数默认值时所经常应对的场景,即参数缺省问题。 使用可变参数语法糖 // a is required, b is optional. // Only the first value in b_optional will be used. func Conca...