我有一个包/API,允许传入一个值。例如:type ConstType stringconst ( T_Option1 ConstType = "OPTION-1" T_Option2 ConstType = "OPTION-2" T_Option3 ConstType = "OPTION-3")注意这个类型是字符串的别名。我遇到什么我认为是非惯用的步骤是我无法将这种类型别名的[]string切片强制转换或推断为切片。type constTypes struct { types []ConstType}func (s *constTypes) SetConstTypes(types []ConstType) { s.types = types}func (s *constTypes) String() string { // this generates a compile error because []ConstType is not // and []string. // // but, as you can see, ConstType is of type string // return strings.Join(s.types, ",")}我把它放在操场上来展示一个完整的例子:http://play.golang.org/p/QMZ9DR5TVR我知道 Go 解决方案是将其强制转换为类型(显式类型转换,喜欢规则!)。我只是不知道如何将类型切片转换为 []string - 不循环遍历集合。我喜欢 Go 的原因之一是强制类型转换,例如:c := T_OPTION1v := string(c)fmt.Println(v)播放:http : //play.golang.org/p/839Qp2jmIz虽然,我不确定如何在不循环的情况下跨切片执行此操作。我必须循环吗?鉴于,循环遍历集合并不是什么大问题,因为最多只能设置 5 到 7 个选项。但是,我仍然觉得应该有一种可转换的方式来做到这一点。
1 回答
- 1 回答
- 0 关注
- 156 浏览
添加回答
举报
0/150
提交
取消