Golang での同じ文字列を繰り返して連結する方法
- 環境
$ go version
go version go1.17.2 darwin/amd64
- 方法
package main
import (
"bytes"
"strings"
)
func main() {
// repeat byte
bufBytes := []byte("😺")
println("repeat byte:" + string(bytes.Repeat(bufBytes, 3))) //😺😺😺
// repeat strings
str := "😺"
println("repeat strings:" + strings.Repeat(str, 3)) //😺😺😺
// repeat rune
// rune 型のスライスにはrepeat関数が用意されていないため、for 文を使う必要がある。
bufRunes := []rune("😺")
for i := 0; i < 3; i++ {
bufRunes = append(bufRunes, []rune("😺")...)
}
println("repeat runes:" + string(bufRunes)) //😺😺😺
}
repeat byte:😺😺😺
repeat strings:😺😺😺
repeat runes:😺😺😺😺
Program exited.
注意:ちなみに、strings
の場合は、+
による連結もできますが、Repeat()
の方がパフォーマンス的に良いです。
おまけ
ご参考まで、他の言語の書き方もまとめますと、
言語 | 方法 |
---|---|
Go 言語 | strings.Repeat(str, 3) |
Scala | str * 3 |
Groovy | str * 3 |
PHP | str_repeat($str, 3) |
Python | str * 3 |
Ruby | str * 3 |
Perl | $str x 3 |
参考記事
- Cover の画像の元: Unsplash