//1.使用"+"for i :=0; i < n; i++{
s += str
}//2.使用fmt.Sprintffor i :=0; i < n; i++{
s = fmt.Sprintf("%s%s", s, str)}//3.使用strings.Buildervar builder strings.Builder
for i :=0; i < n; i++{
builder.WriteString(str)}//4.使用 bytes.BufferfuncbufferConcat(n int, s string)string{
buf :=new(bytes.Buffer)for i :=0; i < n; i++{
buf.WriteString(s)}return buf.String()}//5.使用 []bytefuncbyteConcat(n int, str string)string{
buf :=make([]byte,0)for i :=0; i < n; i++{
buf =append(buf, str...)}returnstring(buf)}//6.如果长度是可预知的,那么创建 []byte 时,我们还可以预分配切片的容量(cap)funcpreByteConcat(n int, str string)string{
buf :=make([]byte,0, n*len(str))for i :=0; i < n; i++{
buf =append(buf, str...)}returnstring(buf)}