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

相关阅读 >>

Golang 泛型初探

使用 mix/vega + mix/db 进行现代化的原生 php 开发

Go在迅雷p2p连通系统中的性能优化实践-朱文

云边端架构easydss内Go语言如何生成归档文件?

Golang make和new区别

手撸Golang 行为型设计模式 模板方法模式

介绍基于Go语言框架gin开发的mvc轮子框架:ginlaravel

适合开发者的七种python代码审查工具

Go const

Golang官方限流器的用法详解

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




打赏

取消

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

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

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

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

评论

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