生成 N 个空格的字符串的规范方法?

Mar*_*son 0 string go

在 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)

hob*_*bbs 6

标准库中有一个strings.Repeatstrings.Repeat(" ", n)函数,所以就可以了。该实现使用与strings.Builder您类似的实现,除了:

  1. Grow提前要求构建器保证只分配一次,而不是可能在中间重新分配多次。

  2. 它逐渐将构建器的内容加倍,而不是调用WriteStringn 次。想必他们这样做是因为这样效率更高。

对于合理数量的空格,这些可能都没有任何区别......但无论如何,有一个 stdlib 函数可以表达你的意思(实际上它是 Python 的 str * int 的直接等价物),所以你不妨使用它。