package main
import (
"fmt"
"strings"
)
func getName(params ...interface{}) string {
var stringSlice []string
for _, param := range params {
stringSlice = append(stringSlice, param.(string))
}
return (stringSlice, "_")
}
func main() {
(getName("redis", "slave", "master"))
}
上面的代码如果类型不匹配,会产生panic错误,如果想不产生panic错误
str, ok := param.(string)
如果ok为false,则str为空,不报错。
也可以这样:
package main
import (
"fmt"
"reflect"
"strings"
)
func getName(params ...interface{}) string {
var stringSlice []string
for _, param := range params {
stringSlice = append(stringSlice, param.(string))
}
return (stringSlice, "_")
}
func main() {
var aa []interface{} = make([]interface{}, 3)
aa[0] = "redis"
aa[1] = "slave"
aa[2] = "master"
((aa))
((aa[0]))
(getName(aa...))
}
输出:
[]interface {}
string
redis_slave_master