字符串操作和类型转换
字符串
GO语言中字符串是用双引号包裹的
GO语言中单引号包裹的是字符
单独的字母、汉字、符号表示一个字符
字节:1字节=8bit(8个二进制位)
一个'A'=1个字节
一个UTF-8编码的汉字'杀'=一般占3个字节
转义字符
\r:回车符(返回行首)
\:本来是具有特殊含义的,我应该告诉程序我写的\就是一个单纯的\
多行字符串
xx=`
多行字符串
`
反引号间换行将作为字符串中的换行,==但是所有的转义字符均无效==,文本将会原样输出。
字符串的常见操作
fmt.Println(len(xx)) //长度
ss := name + world //拼接
ss := fmt.Sprintf("%s%s",name,world) //拼接
ret := strings.Splite(s3,"\\") //分割(例子以\作为分割)
fmt.Println(strings.Contains(ss,"xx")) //包含(判断是否包含返回false/ture)
fmt.Println(strings.Hasprefix(ss,"xx")) //判断前缀
fmt.Println(strings.HasSuffix(ss,"xx")) //判断后缀
fmt.Println(strings.Index(ss,"x") //判断子串位置
fmt.Println(strings.LastIndex(ss,"x") //判断子串最后出现的位置
fmt.Println(strings.Join(ss,"+") //用+号拼接起来
rune和byte类型小区别
uint8 :byte型,代表了ASCII码中的一个字符(英文常用)
rune :一个UTF-8字符(适用处理中文日文或其他复合字符),是int32类型
字符串修改
注: 字符串是不能修改的变量,只能转换后再改
s1 := "帅哥" //['帅' '哥']
s2 := []rune(s) //把字符串强制转换成了一个rune切片
s2[] = '丑' //切片里保存是字符,不可用“xx”
fmt.Println(strings(s2)) //把rune切片强转成字符串
//字符串和字符类型区别
s = "帅" //string
s1 = '帅' //int32 即rune
类型转换
语法:T(表达式)
例子
var a int //a为int型
b = float(a) //将a转换为float给b赋值
注:boolean类型不可转