
Go 字符串
字符串
- string 是数据类型,不是引用类型或指针类型
- string 是只读的 byte slice,len 函数可以它所包含的 byte 数
- string 的 byte 数组可以存放任何数据
我们来看看下面的代码。
package string_test
import "testing"
func TestString(t *testing.T) {
var s string
t.Log(s) // 初始化为默认零值""
s = "hello"
t.Log(len(s))
// s[1] = '3' // string 是不可变的byte slice
s = "\xE4\xB8\xA5" // 可以存储任何二进制数据
// s = "\xE4\xBA\xB5\xFF"
t.Log(s)
t.Log(len(s))//可以知道指定的长度是以byte的形式
}
Unicode UTF8
- Unicode 是一种字符集(code point)
- UTF8 是 unicode 的存储实现(转换为字节序列的规则)
- 举个栗子
字符 | “中” |
---|---|
Unicode | 0x4E2D |
UTF-8 | 0xE4B8AD |
string/[]byte | [0xE4,0xB8,0xAD] |
我们从上一个方法中添加几行代码
c := []rune(s)
t.Log(len(c))
t.Logf("中 unicode %x", c[0])
t.Logf("中 UTF8 %x", s)
常用字符串函数包
- string 包 (https://golang.org/pkg/string)
- strconv 包 (https://golang.org/pkg/strconv)
遍历字符串
func TestStringToRune(t *testing.T) {
s := "学得好慢呀"
for _, c := range s {
t.Logf("%[1]c %[1]x", c)
}
}
其他函数与方法
分割与拼接
func TestStringFn(t *testing.T) {
s := "A,B,C"
// 分割
parts := strings.Split(s, ",")
for _, part := range parts {
t.Log(part)
}
// 拼接
t.Log(strings.Join(parts, "-"))
}
转类型
func TestCov(t *testing.T) {
// 整型转字符串
s := strconv.Itoa(10)
t.Log("str" + s)
// 字符串转整型(先判断是否能转成功)
if i, err := strconv.Atoi("10"); err == nil {
t.Log(10 + i)
}
}
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
2
文章
657
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术