成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇文章帶你了解Go語言基礎之字節類型

開發 前端
字符串是一個個字符拼接成的,反過來,也是一個個字符拼接成的字符串,而一個個的字符,就被稱為字節(byte)。

[[427720]]

前言

Hey,大家好呀,我是星期八,這次咱們繼續學習Go基礎之字節類型吧。

上文之字符串回顧

在上述文章中,我們學過了字符串類型。

在Go語言中,字符串類型是基本類型,在棧中存儲,其結構如下。

可以看到,在Go中,字符串其實就是指向了一個連續的內存地址,并且記錄了長度,讀取是一次性讀取出來的。

那么,如上圖所示,內存里面存的一個個字母叫啥呢???

byte和rune類型

字符串是一個個字符拼接成的,反過來,也是一個個字符拼接成的字符串,而一個個的字符,就被稱為字節(byte)。

字節占用1個字節大小,只能存字母了,標點符號之類的,不能存中文。

當然,存中文怎么辦???在Go中有一個rune,和byte類似,本質和byte一樣,只不過rune一個占用4個字節。

rune使用utf-8編碼,可以存中文,各種語言。

所以,處理中文盡量用rune類型。

定義個(字節)byte類型變量

字符用單引號'號包裹起來。

代碼

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     var a byte = 'a' 
  7.     fmt.Println(a) 

小朋友,是否有很多疑問???為什么是97

原因

byte代表的是一個ASCII碼的一個字符,同理,rune可以理解為是byte的一個超集,向下兼容byte。

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     var a rune = 'a' 
  7.     fmt.Println(a) 

結果:

但是rune里面可以寫中文,byte不行。

byte不能存中文

rune可以存中文

發現了嗎,打印的竟然是一個數字?這是為啥???

就拿字母a來說,其實打印的是ASCII對應的數字,打印的是他的十進制。

同理,字符張也是,這里就不做例子了,因為utf-8表太大了。

遍歷字符串

方式一

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     s := "我是法外狂徒,張三,hahaha" 
  7.     for _, r := range s { 
  8.         fmt.Printf("%c \n",r) 

方式二

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     s := "我是法外狂徒,張三,hahaha" 
  7.     for i := 0; i < len(s); i++ { 
  8.         //中文會亂碼,不推薦 
  9.         fmt.Printf("%c \n",s[i]) 

修改字符串

同理,字符串相當于是字節列表組成的,是不能直接修改的,想要直接修改需要打散成字節列表才行。

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     //只有英文的情況下 
  7.     s1 := "hello world" 
  8.     var s1_byte_list = []byte(s1) //打散成字符列表 
  9.     s1_byte_list[6] = 'F'         //修改下表為6的字符為F 
  10.     s1 = string(s1_byte_list)     //打散的字符列表在組裝成字符串 
  11.     fmt.Println(s1)               //輸出 hello 6orld 
  12.  
  13.     //帶有中文的情況 
  14.     s2 := "天空好像下雨,我好像住你隔壁vay" 
  15.     var s2_rune_list = []rune(s2) //打散成utf-8字符列表 
  16.     s2_rune_list[5] = '雪'         //修改下表為5的字符為雪 
  17.     s2 = string(s2_rune_list)     //打散的utf8字符轉字符串 
  18.     fmt.Println(s2)               //輸出 天空好像下雪,我好像住你隔壁 

總結

上述我們學習了Go基礎之數據類型。如果在操作過程中有任務問題,記得下面討論區留言,我們看到會第一時間解決問題。

我是碼農星期八,如果覺得還不錯,記得動手點贊一下哈。感謝你的觀看。

本文轉載自微信公眾號「Go語言進階學習」,可以通過以下二維碼關注。轉載本文請聯系Go語言進階學習公眾號。

 

責任編輯:武曉燕 來源: Go語言進階學習
相關推薦

2020-10-23 08:38:19

Go語言

2020-11-05 09:58:16

Go語言Map

2022-02-16 10:03:06

對象接口代碼

2020-10-22 08:33:22

Go語言

2020-11-11 10:52:54

Go語言C語言

2021-10-16 10:17:51

Go語言數據類型

2022-04-27 10:01:43

切片Go封裝

2020-10-25 07:33:13

Go語言

2020-12-09 09:59:32

Go語言技術

2020-12-27 10:15:44

Go語言channel管道

2020-12-30 09:04:32

Go語言TCPUDP

2020-12-07 05:59:02

語言Go接口

2021-10-30 10:43:04

語言Go函數

2021-11-03 10:02:07

Go基礎函數

2021-09-29 10:00:07

Go語言基礎

2021-10-13 10:00:52

Go語言基礎

2020-10-22 11:15:47

Go語言變量

2020-12-23 08:39:11

Go語言基礎技術

2021-01-13 08:40:04

Go語言文件操作

2021-02-20 10:06:14

語言文件操作
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品视频在线观看视频 | 欧美综合一区二区 | 久久免费视频观看 | 综合色影院 | 久久精品久久久久久 | 99伊人| 黄色免费网站在线看 | 国产高清视频在线观看 | 日韩一区二区精品 | 伊伊综合网 | 日日干夜夜操 | 欧美极品少妇xxxxⅹ免费视频 | 亚洲精品欧美一区二区三区 | 婷婷色成人 | 亚洲欧美日韩在线不卡 | 久久综合久 | 美女张开腿露出尿口 | 成人免费三级电影 | 草草视频在线播放 | 日韩视频在线一区 | 久久久精彩视频 | 精品网站999 | 日韩免费电影 | 伊人二区 | 91久久精品一区二区三区 | 黄色国产在线播放 | 国产一区 | 亚洲视频精品 | 亚洲成人免费电影 | 国产精品国产精品国产专区不片 | 99精品欧美一区二区三区 | 国产视频久久 | 中文字幕一级 | 日韩在线精品视频 | 成人a在线观看 | 国产精品99久久久久久久vr | 亚洲精品第一页 | 欧美自拍视频 | 国产精品美女久久久久aⅴ国产馆 | 欧美v在线 | 久久久久久一区 |