github.com/maikovskiys/l1tasks@v0.0.0-20230927052451-6436d7687dc9/learn/dev01/main.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  )
     7  
     8  /*
     9  Какой самый эффективный способ конкатенации строк?
    10  */
    11  func main() {
    12  	strings := []string{"This ", "is ", "string"}
    13  
    14  	b := concat2builder(strings)
    15  	fmt.Println(b)
    16  }
    17  
    18  // билдер не аллоцирует память под каждую строку
    19  func concat2builder(str []string) string {
    20  	var builder strings.Builder
    21  	for _, v := range str {
    22  		builder.Grow(len(v)) // grow capacity
    23  		builder.WriteString(v)
    24  	}
    25  	return builder.String()
    26  }