golangの文字列接合

1328 ワード

よく使われる文字列の接合方法
1.最も一般的な方法は、+が2つの文字列を接続することに違いありません.これはpythonと似ていますが、golangの文字列は可変なタイプなので、+接続で新しい文字列が効率に影響します.
s1 := "   "
s2 := "  "
s3 := s1 + s2
fmt.Print(s3) //s3 = "     "
2.第2の方法はsprintf関数を使用し、直接+を使用するように一時文字列を生成しないが.でも効率も上がらない
s1 := "   "
s2 := "  "
s3 := fmt.Sprintf("%s%s", s1, s2) //s3 = "     "
3.第3の方法は、Join関数を使用することです.ここでは、Join関数を呼び出すにはstringsパッケージを導入する必要があります.Join関数はまず文字列配列の内容に基づいて,1つの接合後の長さを計算し,対応するサイズのメモリを申請し,1つの文字列を埋め込み,すでに1つの配列がある場合,この効率は高く,なければ効率も高くない.
//     strings 
s1 := "   "
s2 := "  "
//                 
var str []string = []string{s1, s2}
//  Join  
s3 := strings.Join(str, "")
fmt.Print(s3)
4.4番目の方法はbuffer.WriteString関数を呼び出すことであり、この方法の性能は上記より大幅に優れている.
//     bytes 
s1 := "   "
s2 := "  "
//  Buffer  
var bt bytes.Buffer
 bt      
bt.WriteString(s1)
bt.WriteString(s2)
//         
s3 := bt.String()
5.5つ目の方法はbuffer.Builderで、この方法は上との差は多くありませんが、公式にはこれを使うことをお勧めします.使用方法は上と基本的に同じです.
//     Strings 
s1 := "   "
s2 := "  "
var build strings.Builder
build.WriteString(s1)
build.WriteString(s2)
s3 := build.String()
結論
普通は少量の文字列のつなぎ合わせに対して直接+で接続することができますが、最も良い方法はBuilderです.