我需要使用strings.Join(invoicesBatch,",")来加入一个字符串数组.但是我使用reflect.ValueOf(invoiceList)从地图获得的数组.MapKeys()是reflect.Value数组.有没有一种简单的方法将它们转换为字符串数组.
地图已使用字符串键初始化.
zol*_*ola 30
而不是使用反射,您可以使用for循环和范围来获得这样的一片键
package main
import (
"fmt"
"strings"
)
func main() {
data := map[string]int{
"A": 1,
"B": 2,
}
keys := make([]string, 0, len(data))
for key := range data {
keys = append(keys, key)
}
fmt.Print(strings.Join(keys, ","))
}
Run Code Online (Sandbox Code Playgroud)
Ank*_*kur 14
您将需要使用循环,但每次我们已经知道长度时您不需要创建新切片.例:
func main() {
a := map[string]int{
"A": 1, "B": 2,
}
keys := reflect.ValueOf(a).MapKeys()
strkeys := make([]string, len(keys))
for i := 0; i < len(keys); i++ {
strkeys[i] = keys[i].String()
}
fmt.Print(strings.Join(strkeys, ","))
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33143 次 |
| 最近记录: |