我想将一个map的所有键合并为一个形如[k1,k2,...]的字符串。我不太关心顺序,只要能生成字符串就可以了。我知道有函数strings.Join(),但它需要[]string而不是map[string]bool。
我希望以最高效/最快的方式实现这一目标(即我不想创建整个键的副本,以便可以在其上切片)。我找不到仅获取map键的切片的方法,因此我想出了以下函数。显然,它并不是最好的,因为它做了不必要的写入和截断。
是否有办法直接在map键上进行切片?
我希望以最高效/最快的方式实现这一目标(即我不想创建整个键的副本,以便可以在其上切片)。我找不到仅获取map键的切片的方法,因此我想出了以下函数。显然,它并不是最好的,因为它做了不必要的写入和截断。
是否有办法直接在map键上进行切片?
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()
}
range
迭代映射。 - FuriousGeorge