string,byte,rune


本文摘自网络,作者,侵删。

byte本指是int8,操作的基本单位是字节,适合只适合表达ascii字符
rune本质是int32,操作的基本单位是字符,可以处理所有的字符,用来表示utf8,unicode等编码
string本指是[]byte

byte/rune转string
var b []byte="abc"
var r []rune="cdr"

var s1 string=string(b)
var s2 string =string(r)

string转byte/rune
var s string = "abc"

r := []rune(s)
b:=[]byte(s)

len()函数

var b []byte="abc"
var r []rune="cdr你好"

s := string(r)

fmt.Println(len(r))
fmt.Println(len(b))
//在unicode中,一个中文占两个字节,utf-8中一个中文占三个字节,golang默认的编码是utf-8编码,因此默认一个中文占三个字节,但是golang中的字符串底层实际上是一个byte数组。因此输出9
fmt.Println(len(s))

string的遍历
var r []rune="cdr你好"
s := string(r)

// 输出不正常
for i:=0;i<len(s);i++ {
fmt.Println(string(s[i]))
}

//按字符输出 "cdr你好"
for _,v:= range s {
fmt.Println(string(v))
}


本文来自:简书

感谢作者:小怪兽狂殴奥特曼

查看原文:string,byte,rune

相关阅读 >>

在 docker 下 Golang 的 Gomaxprocs 初始化混乱问题

聊聊dubbo-Go-proxy的client

Go微服务入门到容器化实践,落地可观测的微服务电商项目

Golang 管道线程安全吗

[译]Go语言最佳实战[一]

Golang | 一文带你快速入门context

Golang实现:树形结构返回所有菜单列表

Golang是多线程模式吗?

Golang实现微信支付v3版本

Go语言怎么将整数转化为浮点数

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...