func (s *TODOService) DeleteTODO(ctx context.Context, ids []int64) error { const deleteFmt = `DELETE FROM todos WHERE id IN (?%s)` return nil}我需要?向查询中添加与 id 列表数量一样多的符号(此处),因此我想结合 fmt.Sprintf 和 strings.Repeat 函数以将符号添加到提供的查询格式中 我应该如何添加它?
1 回答
白板的微信
TA贡献1883条经验 获得超3个赞
ipmlStringer interface
package main
import (
"fmt"
"strconv"
"strings"
)
type SqlArr []int64
func (a SqlArr) String() string {
ans := strings.Builder{}
for i := 0; i < len(a); i++ {
ans.WriteString(strconv.FormatInt(a[i], 10))
if i != len(a)-1 {
ans.WriteRune(',')
}
}
return ans.String()
}
func Test(ids SqlArr) {
deleteFmt := fmt.Sprintf(`DELETE FROM todos WHERE id IN (%s)`, ids)
fmt.Printf("%v\n", deleteFmt)
}
func main() {
Test([]int64{1, 2, 3})
}
- 1 回答
- 0 关注
- 65 浏览
添加回答
举报
0/150
提交
取消