在Go语言中,生成一个N个空格的字符串的规范方法是什么,类似于Python中的' ' * n?目前我自己正在构建它,如下所示。
' ' * n
func spaces(n int) string { var sb strings.Builder for i := 0; i < n; i++ { sb.WriteString(" ") } return sb.String() }
yqyhoc1h1#
在标准库中有一个strings.repeat函数,所以strings.Repeat(" ", n)就可以了。这个实现使用的strings.Builder和你的一样,除了:1.它提前调用构建器上的Grow,以保证只分配一次,而不是可能在中间多次重新分配。1.它会逐渐地将构建器的内容加倍,而不是调用WriteStringn次,可能是因为这样更高效。对于合理数量的空格,这些可能都不会有什么不同......但是不管怎样,有一个stdlib函数可以表达你的意思(实际上它直接等价于Python的str * int),所以你也可以使用它。
strings.Repeat(" ", n)
strings.Builder
Grow
WriteString
1条答案
按热度按时间yqyhoc1h1#
在标准库中有一个strings.repeat函数,所以
strings.Repeat(" ", n)
就可以了。这个实现使用的strings.Builder
和你的一样,除了:1.它提前调用构建器上的
Grow
,以保证只分配一次,而不是可能在中间多次重新分配。1.它会逐渐地将构建器的内容加倍,而不是调用
WriteString
n次,可能是因为这样更高效。对于合理数量的空格,这些可能都不会有什么不同......但是不管怎样,有一个stdlib函数可以表达你的意思(实际上它直接等价于Python的str * int),所以你也可以使用它。