一、长度计算
1、如果字符串全为英文,len计算的是英文字符的个数。
2、如果字符串英文中文都有,可以参照以下示例。
package main
import "fmt"
func main() {
name := "hello,这个世界"
bytes := []rune(name)
fmt.Println(len(bytes))
}
解释:
name := "hello,这个世界"
:定义了一个字符串变量name
,其中包含英文单词 “hello” 和中文字符 “这个世界”。bytes := []rune(name)
:将字符串name
转换为rune
类型的切片,每个元素都是一个 Unicode 字符的码点。中文字符在 Unicode 中通常占用多个字节,因此rune
类型用于正确表示这些字符。fmt.Println(len(bytes))
:打印bytes
切片的长度,即其中包含的 Unicode 字符的个数。这里使用len
函数获取切片的长度。
结果:
最后的结果将是 10
,因为字符串 “hello,这个世界” 包含 10 个字符,包括英文字符和中文字符。虽然在这个字符串中,中文字符 “这个世界” 是四个字符,但在 Unicode 编码中,它们被表示为四个码点,因此 len
函数返回的是码点的个数。
3、字符串英文中文都有的对照示例。
package main
import "fmt"
func main() {
name := "hello,这个世界"
fmt.Println(len(name))
}
解释:
name := "hello,这个世界"
:定义了一个字符串变量name
,其中包含英文单词 “hello” 和中文字符 “这个世界”。fmt.Println(len(name))
:打印name
字符串的长度,即其中包含的字符的个数。这里使用len
函数获取字符串的长度。
结果:
最后的结果将是 20
,因为字符串 “hello,这个世界” 包含 20 个字符,包括英文字符、中文字符和中文逗号。(一个中文字符相当于3个英文字符的长度,中文逗号也是)
二、转义符
//转义符
courseName :="hello\"世界\""
fmt.Println(courseName)
结果:
hello"世界"
//转义符
courseName :=`hello"世界"`
fmt.Println(courseName)
结果:
hello"世界"
package main
import "fmt"
func main() {
courseName := "hello\r\n世界"
fmt.Println(courseName)
fmt.Print("hello")
fmt.Print("world")
}
结果:
hello
世界
helloworld%