 
前言Hey,篇文大家好呀,章带字节我是语言基星期八,这次咱们继续学习Go基础之字节类型吧。类型 上文之字符串回顾在上述文章中,篇文我们学过了字符串类型。章带字节 在Go语言中,语言基字符串类型是类型基本类型,在栈中存储,篇文其结构如下。章带字节  
 可以看到,语言基在Go中,类型字符串其实就是篇文指向了一个连续的内存地址,并且记录了长度,章带字节读取是语言基一次性读取出来的。 那么,如上图所示,内存里面存的一个个字母叫啥呢??? byte和rune类型字符串是一个个字符拼接成的,反过来,也是一个个字符拼接成的字符串,而一个个的字符,就被称为字节(byte)。WordPress模板 字节占用1个字节大小,只能存字母了,标点符号之类的,不能存中文。 当然,存中文怎么办???在Go中有一个rune,和byte类似,本质和byte一样,只不过rune一个占用4个字节。 rune使用utf-8编码,可以存中文,各种语言。 所以,处理中文尽量用rune类型。 定义个(字节)byte类型变量字符用单引号号包裹起来。 代码 package main import "fmt" func main() {     var a byte = a     fmt.Println(a) }         小朋友,是否有很多疑问???为什么是97  
 原因 byte代表的是一个ASCII码的一个字符,同理,rune可以理解为是byte的一个超集,向下兼容byte。 package main import "fmt" func main() {     var a rune = a     fmt.Println(a) }         结果:  
 但是rune里面可以写中文,byte不行。 byte不能存中文 
 rune可以存中文 
 发现了吗,打印的网站模板竟然是一个数字?这是为啥??? 就拿字母a来说,其实打印的是ASCII对应的数字,打印的是他的十进制。 同理,字符张也是,这里就不做例子了,因为utf-8表太大了。  
 遍历字符串方式一 package main import "fmt" func main() {     s := "我是法外狂徒,张三,hahaha"     for _, r := range s {         fmt.Printf("%c n",r) } }          
 方式二 package main import "fmt" func main() {     s := "我是法外狂徒,张三,hahaha"     for i := 0; i < len(s); i++ {         //中文会乱码,不推荐         fmt.Printf("%c n",s[i]) } }          
 修改字符串同理,字符串相当于是字节列表组成的,是不能直接修改的,免费信息发布网想要直接修改需要打散成字节列表才行。 package main import "fmt" func main() {     //只有英文的情况下     s1 := "hello world"     var s1_byte_list = []byte(s1) //打散成字符列表     s1_byte_list[6] = F         //修改下表为6的字符为F     s1 = string(s1_byte_list)     //打散的字符列表在组装成字符串     fmt.Println(s1)               //输出 hello 6orld     //带有中文的情况     s2 := "天空好像下雨,我好像住你隔壁vay"     var s2_rune_list = []rune(s2) //打散成utf-8字符列表     s2_rune_list[5] = 雪         //修改下表为5的字符为雪     s2 = string(s2_rune_list)     //打散的utf8字符转字符串     fmt.Println(s2)               //输出 天空好像下雪,我好像住你隔壁 }         总结上述我们学习了Go基础之数据类型。如果在操作过程中有任务问题,记得下面讨论区留言,我们看到会第一时间解决问题。 我是码农星期八,如果觉得还不错,记得动手点赞一下哈。感谢你的观看。 本文转载自微信公众号「Go语言进阶学习」,可以通过以下二维码关注。转载本文请联系Go语言进阶学习公众号。  
  |