字符串
- string是数据类型,不是引用类型或者指针类型,它的默认值就是空字符串,而不是nil
- string是只读的byte slice,len函数返回的是它所包含的byte数
- string的byte数组可以存放任何数据
Unicode UTF8
- Unicode是一种字符集
- UTF8是unicode的存储实现(转换为字节序列的规则)
func TestStringDemo1(t *testing.T) {
var s string//声明
s = "中"
t.Log(len(s)) //3,是byte数
c := []rune(s)
t.Log(len(c)) //1
t.Logf("%s unicode %x", s, c[0]) //中 unicode 4e2d
t.Logf("%s UTF8 %x", s, s) //中 UTF8 e4b8ad
}
func TestStringToRune(t *testing.T) {
s := "国产软件自主可控"
for _, c := range s {
t.Logf("%[1]c %[1]d", c) //[1]代表和第一个参数对应
/*
国 22269
产 20135
软 36719
件 20214
自 33258
主 20027
可 21487
控 25511
*/
}
}
常用字符串函数
连接与分割
func TestStringFun(t *testing.T) {
s := "A,B,C"
parts := strings.Split(s, ",") //字符串分割
for _, part := range parts {
t.Log(part)
/*
A
B
C
*/
}
t.Log(strings.Join(parts, "-")) //A-B-C,字符串连接
}
[字符串-整数]类型转换
func TestConv(t *testing.T) {
s := strconv.Itoa(10) //整数转为字符串
t.Log("str" + s) //str10
//字符串转整数
if i, err := strconv.Atoi("10"); err == nil {
t.Log(10 + i)
} else {
t.Log("类型转换错误!")
}
}
本文章参考来自Go语言从入门到实战