猿问

golang []interface{} 的数组如何转换为 []string 的数组

packagemain
import(
"fmt"
"strings"
)
funcgetName(params...interface{}){
aa:=strings.Join([]string(params),'_')
fmt.Println(aa)
}
funcmain(){
getName("redis","100","master")
}
看上面的代码,我想把传入的参数params用"_"连接,但是将params转成[]string类型时失败了,请指教。
假如
假如getName("redis","100","master")改为
getName("redis",100,"master")
编译没错误,但是运行时报错
panic:interfaceconversion:interfaceisint,notstring
红糖糍粑
浏览 13514回答 2
2回答

摇曳的蔷薇

packagemainimport("fmt""strconv""strings")funcgetName(params...interface{}){varparamSlice[]stringfor_,param:=rangeparams{switchv:=param.(type){casestring:paramSlice=append(paramSlice,v)caseint:strV:=strconv.FormatInt(int64(v),10)paramSlice=append(paramSlice,strV)default:panic("paramstypenotsupported")}}res:=strings.Join(paramSlice,"_")fmt.Println(res)}funcmain(){getName("redis",100,"master")}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答