我想将地图的所有键连接成 [k1, k2, ...] 形式的单个字符串。我不太关心订单,只是我可以制作字符串。我知道有这个函数,strings.Join()但它接受 a[]string而不是 a map[string]bool。
我想以最有效/最快的方式执行此操作(即我不想创建密钥的完整副本,以便我可以对其进行切片)。我找不到只获取地图键的一部分的方法,所以我想出了以下函数。显然它不是最好的,因为它做了不必要的写入和截断。
有没有办法只对地图键进行切片?
func CreateStringArray(myMap map[string]bool) string {
if myMap == nil || len(myMap) == 0 {
return "[ ]"
}
buf := bytes.NewBufferString("[")
for k, _ := range myMap {
buf.WriteString(k)
buf.WriteString(", ")
}
buf.Truncate(buf.Len() - 2)
buf.WriteString("]")
return buf.String()
}
江户川乱折腾
相关分类