在 Go 中生成 N 个空格的字符串的规范方法是什么,类似于' ' * n在 Python 中?
我目前正在自己构建它,如下所示。
func spaces(n int) string {
var sb strings.Builder
for i := 0; i < n; i++ {
sb.WriteString(" ")
}
return sb.String()
}
Run Code Online (Sandbox Code Playgroud)
标准库中有一个strings.Repeatstrings.Repeat(" ", n)函数,所以就可以了。该实现使用与strings.Builder您类似的实现,除了:
它Grow提前要求构建器保证只分配一次,而不是可能在中间重新分配多次。
它逐渐将构建器的内容加倍,而不是调用WriteStringn 次。想必他们这样做是因为这样效率更高。
对于合理数量的空格,这些可能都没有任何区别......但无论如何,有一个 stdlib 函数可以表达你的意思(实际上它是 Python 的 str * int 的直接等价物),所以你不妨使用它。