字符串是基本的编程构建,go语言支持两种创建字符串面量的方式。解释性字符串是用双引号括起来的字符串。
a := "hello world"
除换行符和为转义的双引号外,解释性字符串字面量可包含其他任何字符。
通过使用rune字面量,可将解释型字符串字面量分成多行,还可在其中包含制表符和其他格式选项。
a := "I accidentally realized that my handwriting looks sort of ugly; \nhowever, my best friend’s handwriting is real nice as an art.\n Then I have a passion for the beauty of handwriting, so I decided to practice calligraphy."
fmt.Println(a)
要拼接字符串,可将运算符+用于字符串变量
a := "hello" + " world"
还可以使用+=来拼接字符串。这个运算符将它右边的字符串合并到左边的字符串中。
a := "hello"
a += " world"
如果将整数和字符串进行拼接将导致编译错误。如果需要整数和字符串进行拼接,需要先将整数转换成字符串。
var i int = 1
var a string = "hello"
intstring := strconv.Itoa(i)
var result = intstring + a
fmt.Println(result)
对于少量的拼接,使用运算符+和+=的效果很好,但随着拼接操作次数的增加,这种做法的效率并不高。如果需要在循环中拼接字符串,则使用空的字节缓冲区来拼接的效率更高。
import "fmt"
import "bytes"
func main() {
var buffer bytes.Buffer
for i:=0;i<100;i++ {
buffer.WriteString("a")
}
fmt.Println(buffer.String())
}
先创建一个空的字节缓冲区,并赋予变量buffer,运行100次将a放入缓冲区,最后对缓冲区调用String()函数以字符串的方式输出结果。