字符串类型为 string
,使用双引号或者反引号包起来
当使用反引号时不会对字符串进行转义,并可以包含多行文本
示例:
package main
import "fmt"
func main() {
a := `
hello
world
!
`
b := `hello \n world`
fmt.Println(a)
fmt.Println(b)
}
输出结果:
hello
world
!
hello \n world
当使用双引号时,只能通过 \n
进行换行
示例:
package main
import "fmt"
func main() {
a := "hello \n world"
fmt.Println(a)
}
输出结果:
hello
world
如果直接使用索引进行取值,会取到一个字节
示例:
package main
import (
"fmt"
)
func main() {
a := "abc"
for i := 0; i < len(a); i++ {
fmt.Printf("%v, %T\n", a[i], a[i])
}
}
输出结果:
97, uint8
98, uint8
99, uint8
如果通过切片取出来的还是字符串,即使只取了一个字节也是一个字节的字符串
示例:
package main
import (
"fmt"
)
func main() {
a := "abc"
for i := 0; i < len(a); i++ {
fmt.Printf("%v, %T\n", a[i: i+1], a[i: i+1])
}
}
输出结果:
a, string
b, string
c, string
Go 中字符串类型是不能修改的,想要修改必须先转换为切片,修改之后再改回来
示例:
func main() {
a := "hello world"
b := []rune(a)
b[0] = 'H'
a = string(b)
fmt.Printf("%v", a)
}
原文:https://www.cnblogs.com/dbf-/p/12074898.html