Golang几种连接字符串方法

Golang几种连接字符串方法

Golang中字符串是不可变的使用UTF-8编码任意字节链。把一个或多个字符相加称为字符串连接。最简单的方式使用+操作符,本文介绍多种方式连接字符串。

1. 使用加操作符

首先介绍简单使用+操作符:

package main 
  
import "fmt"
  
func main() { 
    str3 := "hello"
    str4 := "Golang"
  
    // Concatenating strings Using + operator 
    result := str3 + "," + str4 
  
    fmt.Println("Result: ", result) 
} 
12345678910111213

输出结果:

Result: hello,Golang

既然加操作符可以,那么+=也能实现类似功能:

package main 
  
import "fmt"
  
func main() { 
  
    // Creating and initializing strings 
    str1 := "Welcome"
    str2 := " to Golang"
  
    // Using += operator 
    str1 += str2 
    fmt.Println("String: ", str1)   
} 
1234567891011121314

输出:

Result: Welcome to Golang

2. 使用bytes.Buffer

使用bytes.Buffer的方法WriterString()连接字符串的字节,从而实现连接字符串的目的。这种方法避免产生不必要的字符串对象,即不需要像使用+那样生成新的字符串对象。

package main 
  
import ( 
    "bytes"
    "fmt"
) 
  
func main() { 
  
	var b bytes.Buffer

	b.WriteString("你好")
	b.WriteString(",")
	b.WriteString("Golang")

	fmt.Println("String: ", b.String())
} 
1234567891011121314151617

字符串工具类strings也提供了一个封装版本:

	var myString strings.Builder
	myString.WriteString("Hello ")
	myString.WriteString("世界")

	fmt.Println(myString.String())12345

3. 使用Sprintf

我们还可以使用Sprintf方法连接字符串:

package main 
  
import "fmt"
  
func main() { 
  
    // Creating and initializing strings 
    str1 := "Tutorial"
    str2 := "of"
    str3 := "GoLang"
    str4 := "Language"
  
    // Concatenating strings using  
    // Sprintf() function 
    result := fmt.Sprintf("%s %s %s %s", str1,  
                          str2, str3, str4) 
      
    fmt.Println(result) 
} 
12345678910111213141516171819

输出为:

Tutorial of GoLang Language1

4. 总结

本文介绍了Golang三种方法连接字符串。最简单是使用操作符,直接操作字符串底层字节效率比较高,Sprintf方法类似字符串模板方法,比较灵活


评论 (0)

发表评论