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

相关阅读 >>

Go - 如何解析 json 数据?

搭建vscode Golang开发环境

Golang 上传office文档并转化为pdf

Golang笔记之基本数据类型

详解Go 语言中的方法

Go语言之并发

Golang如何实现简单的api网关

slice

基本操作:Go创建graphql api

手撸Golang Go与微服务 es-cqrs模式之2

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




打赏

取消

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

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

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

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

评论

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