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 關注
- 85 瀏覽
添加回答
舉報
0/150
提交
取消