2 回答

TA貢獻1865條經(jīng)驗 獲得超7個贊
包 fmt
import?"fmt"顯式參數(shù)索引:
在 Printf、Sprintf 和 Fprintf 中,默認行為是每個格式化動詞格式化調(diào)用中傳遞的連續(xù)參數(shù)。但是,動詞前的符號 [n] 表示要改為格式化第 n 個單索引參數(shù)。
v
您可以傳遞一次變量。例如,
package main
import "fmt"
func getTableCreationCommands(s string) string {
? ? return fmt.Sprintf(`
? ? ? ? CREATE TABLE share_%[1]v PARTITION OF share FOR VALUES IN (%[1]v);
? ? ? ? CREATE TABLE nearby_%[1]v PARTITION OF nearby FOR VALUES IN (%[1]v);
? ? `, s)
}
func main() {
? ? fmt.Println(getTableCreationCommands(("X")))
}
游樂場:https://play.golang.org/p/fKV3iviuwll
輸出:
CREATE TABLE share_X PARTITION OF share FOR VALUES IN (X);
CREATE TABLE nearby_X PARTITION OF nearby FOR VALUES IN (X);

TA貢獻2012條經(jīng)驗 獲得超12個贊
你也可以使用text/template:
package same
import (
"strings"
"text/template"
)
func getTableCreationCommands(v string) string {
t, b := new(template.Template), new(strings.Builder)
template.Must(t.Parse(`
CREATE TABLE nearby_{{.}} PARTITION OF nearby FOR VALUES IN ({{.}});
CREATE TABLE share_{{.}} PARTITION OF share FOR VALUES IN ({{.}});
`)).Execute(b, v)
return b.String()
}
https://pkg.go.dev/text/template
- 2 回答
- 0 關(guān)注
- 223 瀏覽
添加回答
舉報