将 int 数组转换为以 ',' 分隔的字符串

Jag*_*ati 7 go

我知道[]string我可以使用字符串数组,strings.Join(a []string, ',')但我想对整数数组做同样的事情[]int

我的用例是这样的查询 where variantsis[]map[string]int

 var Ids []int
    sqlStr := "select id from mapping where my_id in ("
    for _, mp := range variants {
       sqlStr += "?,"
       Ids = append(Ids, mp["id"])
    }
    sqlStr = strings.TrimRight(sqlStr, ",")
    rows, err := db.Query(sqlStr+")", strings.Join(Ids, ',')) // I can't do this because Join needs String array
Run Code Online (Sandbox Code Playgroud)

如何实现这一目标?

Jim*_*imB 8

IDs一个[]string,当你添加它们转换整数

var IDs []string
for _, i := range []int{1, 2, 3, 4} {
    IDs = append(IDs, strconv.Itoa(i))
}

fmt.Println(strings.Join(IDs, ", "))
Run Code Online (Sandbox Code Playgroud)

https://play.golang.org/p/xrfuMRjgiI


yog*_*sai 6

我更愿意使用json.Marshal. 它非常简单易用。

data := []int{100, 200, 300}
s, _ := json.Marshal(data)

fmt.Println(strings.Trim(string(s), "[]"))
Run Code Online (Sandbox Code Playgroud)

去游乐场链接

我希望这可以帮助你。如有疑问,请随时提问。网站链接