精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Go語言基礎之結構體(冬日篇)

開發 后端
說起繼承,學過Java,Python的肯定都不陌生,但是Go中,可沒有這個東西吶。那咋辦呢???,還是得用結構體來實現。

[[355148]]

 前言

Hey,大家好呀,我是碼農,星期八,這是最后一次了,同樣也是Go面向對象的最后一次了。堅持住,一起看看看吧。

結構體繼承

說起繼承,學過Java,Python的肯定都不陌生,但是Go中,可沒有這個東西吶。

那咋辦呢???,還是得用結構體來實現。

假裝我們都是男孩,喜歡車,那我們就拿車來舉例子吧。

車結構體

 

  1. //車 
  2. type Car struct { 
  3.     Brand  string //車品牌 
  4.     CarNum string //車牌號 
  5.     Tyre   int    //輪胎個數 
  6.  
  7. //給車綁定一個方法,說明車的基本信息 
  8. func (this *Car) carInfo() { 
  9.     fmt.Printf("品牌:%s,車牌號:%s,輪胎個數:%d\n", this.Brand, this.CarNum, this.Tyre) 

寶馬車

//寶馬車

 

  1. //寶馬車 
  2. type BMWCar struct { 
  3.     //*Car和Car基本沒有區別,一個存的是整個結構體,一個存的是結構體地址,用法大同小異 
  4.     *Car //這就表示繼承了Car這個結構體 

比亞迪車

  1. //比亞迪車 
  2. type BYDCar struct { 
  3.     *Car 

可能看到這,你會有種熟悉得感覺,這不就是上節課所將的結構體嵌套嗎???

這跟繼承有毛關系?

其實在Go中,結構體既可以用來存儲數據,也可以用來模仿對象的各種操作。

main代碼

 

  1. func main() { 
  2.     //一個寶馬對象 
  3.     var bmw1 = BMWCar{&Car{ 
  4.         Brand:  "寶馬x8", 
  5.         CarNum: "京666", 
  6.         Tyre:   4, 
  7. }} 
  8.     //一個比亞迪對象 
  9.     var byd1 = BYDCar{&Car{ 
  10.         Brand:  "比亞迪L3", 
  11.         CarNum: "京111", 
  12.         Tyre:   4, 
  13. }} 
  14.     //因為 BMWCar 和 BYDCar 都繼承了Car,所以都有carInfo這個方法 
  15.     bmw1.carInfo() 
  16.     byd1.carInfo() 

執行結果

這就是一個最簡單的,面向對象,跟其他語言一樣,繼承會將所有的屬性和方法都繼承過來。

序列化

到此為止呢,結構體基本可以告一段落了,基本算是入門了,當然,并沒有結束,但是我想大家都累了,換個方向繼續玩。

這個東西叫做序列化,什么意思呢,就是像咱們的切片了,map了,結構體了等,這些都是Go的類型。

如果要和其他語言交流,人家可沒有這些玩意唉,那怎么辦呢???

眾多大佬就形成了一個規范,json數據格式,json數據必須是字符串類型。

最外面是'號,鍵/值對組合中的鍵名寫在前面并用雙引號""包裹。

就像這樣。

  1. '{"Gender":"男","Name":"張三"}'    //'說明這個是字符串,一般打印時不顯示 

序列化我們用到的是json模塊的Marshal方法。

切片序列化

單獨的切片序列化用的很少,但是仍然還是要知道。

示例代碼

 

  1. package main 
  2.  
  3. import ( 
  4.     "encoding/json" 
  5.     "fmt" 
  6.  
  7. type Student struct { 
  8.     Gender string 
  9.     Name   string 
  10.  
  11. func main() { 
  12.     var StudentList = []string{"張三", "李四"
  13.     fmt.Printf("StudentList類型:%T\n", StudentList) //[]string,這是列表類型 
  14.     serializeByte, err := json.Marshal(StudentList) 
  15.     if err != nil { 
  16.         fmt.Println("序列化失敗"
  17.         return 
  18.     var serializeStr = string(serializeByte) 
  19.     fmt.Printf("serializeStr類型:%T\n", serializeStr) //string,這是字符串類型 
  20.     fmt.Printf("serializeStr值:%v\n", serializeStr) //["張三","李四"

第16行代碼將切片序列化,但是返回的是[]byte類型,第21行代碼將[]byte類型轉成字符串。

執行結果

map序列化

字典序列化,就比較有味道了,序列化的是一個標準的json數據格式。

示例代碼

 

  1. package main 
  2.  
  3. import ( 
  4.     "encoding/json" 
  5.     "fmt" 
  6.  
  7. type Student struct { 
  8.     Gender string 
  9.     Name   string 
  10.  
  11. func main() { 
  12.     var StudentInfo = map[string]string{ 
  13.         "Name":"張三", 
  14.         "Age":"18", 
  15.         "Gender":"男", 
  16.     fmt.Printf("StudentInfo類型:%T\n",StudentInfo) 
  17.     serializeByte, err := json.Marshal(StudentInfo) 
  18.     if err != nil { 
  19.         fmt.Println("序列化失敗"
  20.     var serializeStr = string(serializeByte) 
  21.     fmt.Printf("serializeStr類型:%T\n", serializeStr) //string,這是字符串類型 
  22.     fmt.Printf("serializeStr值:%v\n", serializeStr) //{"Age":"18""Gender":"男","Name":"張三"

執行結果

這個就有點像標準的json格式了。

結構體序列化

結構體代碼

 

  1. type Student struct { 
  2.     Name   string 
  3.     Gender string 
  4.     Age    int 

main

 

  1. func main() { 
  2.   var s1 = Student{ 
  3.     Name:   "張三", 
  4.     Gender: "男", 
  5.     Age:    18, 
  6.   } 
  7.   fmt.Printf("StudentInfo類型:%T\n", s1) 
  8.   serializeByte, err := json.Marshal(s1) 
  9.   if err != nil { 
  10.     fmt.Println("序列化失敗"
  11.   } 
  12.   var serializeStr = string(serializeByte) 
  13.   fmt.Printf("serializeStr類型:%T\n", serializeStr) //string,這是字符串類型 
  14.   fmt.Printf("serializeStr值:%v\n", serializeStr) 

執行結果

切片套結構體

一般情況下,這種方式數據格式是用的比較多的。

當然, 還可以切片嵌套map,方法和此方法一樣,不做例子了。

示例代碼

 

  1. package main 
  2.  
  3. import ( 
  4.   "encoding/json" 
  5.   "fmt" 
  6.  
  7. type Student struct { 
  8.   Name   string 
  9.   Gender string 
  10.   Age    int 
  11.  
  12. func main() { 
  13.   var s1 = Student{ 
  14.     Name:   "張三", 
  15.     Gender: "男", 
  16.     Age:    18, 
  17.   } 
  18.   var s2 = Student{ 
  19.     Name:   "李四", 
  20.     Gender: "女", 
  21.     Age:    16, 
  22.   } 
  23.   //一個存放 Student 的列表 
  24.   var studentList = []Student{s1, s2} 
  25.   fmt.Printf("StudentInfo類型:%T\n", studentList) 
  26.   serializeByte, err := json.Marshal(studentList) //main.Student 
  27.   if err != nil { 
  28.     fmt.Println("序列化失敗"
  29.   } 
  30.   var serializeStr = string(serializeByte) 
  31.   fmt.Printf("serializeStr類型:%T\n", serializeStr) //string,這是字符串類型 
  32.   fmt.Printf("serializeStr值:%v\n", serializeStr)   

執行結果

結構體標簽(Tag)

Tag可以理解為結構體的說明,由一對反引號包裹起來。

但是一般情況下,Tag在序列化是用的比較多。

結構體代碼

 

  1. type Student struct { 
  2.   Name   string `json:"name"
  3.   Gender string `json:"gender"
  4.   Age    int    `json:"age"

每個字段后面跟的,就是Tag,一定不要把格式搞錯啦。

main代碼

 

  1. func main() { 
  2.   var s1 = Student{ 
  3.     Name:   "張三", 
  4.     Gender: "男", 
  5.     Age:    18, 
  6.   } 
  7.   fmt.Printf("StudentInfo類型:%T\n", s1) 
  8.   serializeByte, err := json.Marshal(s1) //main.Student 
  9.   if err != nil { 
  10.     fmt.Println("序列化失敗"
  11.   } 
  12.   var serializeStr = string(serializeByte) 
  13.   fmt.Printf("serializeStr類型:%T\n", serializeStr) //string,這是字符串類型 
  14.   fmt.Printf("serializeStr值:%v\n", serializeStr)   

執行結果

可以發現key成小寫的了,這就說明一個問題。

在序列化時,如果結構體有json這個Tag,序列化時就會以jsonTag為準,如果沒有jsonTag,則以結構體字段為準。

總結

上述我們學習了Go基礎之結構體的結構體繼承,序列化,結構體標簽。學完Go的結構體,可能你也知道了在Go中是如何模仿面向對象了。

一定記得多多實踐,多多敲代碼。如果在操作過程中有任何問題,記得下面討論區留言,我們看到會第一時間解決問題。

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

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

 

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

2020-11-23 08:54:14

Go語言結構體

2020-11-26 06:40:24

Go語言基礎

2020-11-30 06:17:03

Go語言

2020-12-20 09:59:13

Go語言基礎技術

2020-12-02 09:10:22

Go結構數據類型

2021-04-20 09:00:48

Go 語言結構體type

2023-07-29 15:03:29

2020-11-11 10:52:54

Go語言C語言

2020-10-22 08:33:22

Go語言

2020-12-16 08:07:28

語言基礎反射

2020-11-05 09:58:16

Go語言Map

2020-12-23 08:39:11

Go語言基礎技術

2022-02-16 10:03:06

對象接口代碼

2021-06-09 09:06:52

Go語言算法

2021-02-06 18:19:54

TimeGo語言

2020-12-07 05:59:02

語言Go接口

2021-11-03 10:02:07

Go基礎函數

2021-10-30 10:43:04

語言Go函數

2021-01-13 08:40:04

Go語言文件操作

2022-04-27 10:01:43

切片Go封裝
點贊
收藏

51CTO技術棧公眾號

久久久99久久| 99国产一区| 日韩一级大片在线| 国产男女免费视频| 成人在线二区| 国产69精品久久99不卡| 日本亚洲欧美三级| 麻豆精品一区二区三区视频| 日韩系列在线| 欧美一区午夜视频在线观看| 波多野结衣家庭教师在线播放| 国产小视频在线| 国产一区 二区 三区一级| 97在线视频免费播放| 特级西西人体高清大胆| 澳门精品久久国产| 在线播放欧美女士性生活| 日本www在线视频| 麻豆视频在线免费观看| 久久青草国产手机看片福利盒子 | 亚洲精品成人久久| 天天做天天干天天操| 天天综合av| 亚洲综合激情网| 亚洲一区二区不卡视频| 五月天婷婷在线观看| 国产一区久久久| 国产精品美腿一区在线看| 日本三级免费看| 亚洲精品久久| 日韩在线免费高清视频| 成年人网站免费看| 老汉色老汉首页av亚洲| 欧美电影免费观看完整版| 国产精品v日韩精品v在线观看| 欧美男男激情videos| 亚洲精品中文在线观看| 欧美色视频一区| 日韩一区二区三区在线免费观看| 极品销魂美女一区二区三区| 国产ts一区二区| 日韩av电影网| 国产专区一区| 欧美大片在线看免费观看| www.99re6| 欧美电影《睫毛膏》| 在线播放国产精品| av手机在线播放| 国产一区2区| 一本色道久久综合亚洲精品小说| 日韩在线免费观看av| 亚洲精品456| 日韩av影视在线| 97人妻精品一区二区三区免| 欧美18免费视频| 亚洲精品ady| 99re久久精品国产| 国产成人av| 亚洲天堂av在线免费| 国产成人av一区二区三区不卡| 伊人成综合网伊人222| 亚洲全黄一级网站| 成人黄色免费网址| 日本久久一二三四| 久久色精品视频| 国产精品久久久精品四季影院| 影音先锋日韩在线| 欧美大片免费观看| 91av在线免费视频| 老司机亚洲精品| 国产欧美日韩丝袜精品一区| 国产美女裸体无遮挡免费视频 | 午夜天堂在线视频| 深夜福利一区| 亚洲国产精品久久久久秋霞不卡| aa片在线观看视频在线播放| 国产一区二区三区四区二区| 日韩在线观看精品| 久久免费少妇高潮99精品| 亚洲第一毛片| 国产精品高清网站| 国产麻豆精品一区| 不卡在线观看av| 青青草成人网| a黄色片在线观看| 激情成人在线视频| 国产一伦一伦一伦| aiai久久| 在线亚洲国产精品网| 老女人性淫交视频| 久久av最新网址| 国产一区在线播放| 人成网站在线观看| 国产拍揄自揄精品视频麻豆| 干日本少妇视频| 亚洲欧美韩国| 7777精品伊人久久久大香线蕉完整版| 欧美性生交xxxxx| 日韩精品免费| 国外视频精品毛片| 亚洲精品久久久久久久蜜桃| 国产精品77777| 日韩精品久久一区| 黄av在线播放| 色噜噜久久综合| 国模大尺度视频| jizzjizz欧美69巨大| 久久久久久久999精品视频| 欧美另类高清videos的特点| 成人高清在线视频| 一区二区三区国产福利| 一区二区三区四区日本视频| 欧美一区二区三区爱爱| 欧美做受xxxxxⅹ性视频| 国产精品99一区二区| 国产精品女人久久久久久| 成人久久久精品国产乱码一区二区| 国产视频一区在线观看| 丁香六月激情婷婷| 成人日韩视频| 中文字幕在线观看日韩| 欧美h在线观看| 成人成人成人在线视频| 蜜臀在线免费观看| 欧洲亚洲精品久久久久| 亚洲欧美日韩一区在线| 欧美精品99久久久| 国产一区二区伦理片| 亚洲激情一区二区三区| 欧美色999| 亚洲日本成人网| 看片网址国产福利av中文字幕| 豆国产96在线|亚洲| 久久av秘一区二区三区| 福利一区二区免费视频| 国产小视频国产精品| caoporn国产| 26uuu成人网一区二区三区| 一二三四视频社区在线| 亚洲乱码一区| 欧美高清在线视频观看不卡| 国产黄色片免费| 亚洲女人小视频在线观看| 爱豆国产剧免费观看大全剧苏畅| 日韩精品欧美| 国产在线精品一区免费香蕉 | 欧日韩在线观看| 涩涩视频免费看| 亚洲成人av免费| 国产一线在线观看| 亚洲精品偷拍| 久久久久高清| 色婷婷综合久久久中字幕精品久久| 亚洲精品一二区| 天天干,天天干| 久久精品一二三| 三级在线免费看| 久久网站免费观看| 91久久精品美女高潮| 18网站在线观看| 精品成人一区二区三区| 日韩 欧美 综合| 久久美女高清视频| 久久久久国产一区| 亚洲女同中文字幕| 国产精品久久久久久久小唯西川 | 久久99精品久久久久久青青日本| 182在线视频观看| 亚洲人成毛片在线播放| 最近日韩免费视频| 综合色天天鬼久久鬼色| 特级特黄刘亦菲aaa级| 国产日韩专区| 亚欧洲精品在线视频免费观看| 亚洲精品一区av| 久久91亚洲精品中文字幕奶水| 污视频软件在线观看| 在线精品国精品国产尤物884a| 日本激情视频一区二区三区| 国产不卡在线一区| 欧美a在线视频| 国产精品久久久久久久久久10秀| 成人黄色片视频网站| 亚洲性受xxx喷奶水| 日韩视频欧美视频| 免费观看毛片网站| 欧美吻胸吃奶大尺度电影| 欧产日产国产v| 国产亚洲欧美中文| 午夜视频在线观| 一本久久知道综合久久| 亚洲欧洲日本国产| 国产调教精品| 国产中文字幕亚洲| 成人免费影院| 欧美成人午夜视频| 国产视频福利在线| 精品久久国产老人久久综合| 日韩不卡高清视频| 亚洲国产日韩综合久久精品| 免费看日本黄色片| 成人91在线观看| 欧美成人乱码一二三四区免费| 亚洲三级免费| 欧美一级免费在线观看| 亚洲福利天堂| 国产精品三区在线| 91麻豆精品| 国产精品www色诱视频| av2020不卡| 久久成人在线视频| 最新97超碰在线| 亚洲精品视频播放| 少妇一级淫片免费看| 在线综合视频播放| 成人免费一级片| 色综合久久综合网97色综合| 国产一级特黄视频| 亚洲精品免费电影| 国产三级精品三级观看| 日本一区二区三区四区在线视频| 国产精品无码在线| 处破女av一区二区| 巨乳女教师的诱惑| 国产一区二区按摩在线观看| 三级视频中文字幕| 日本免费新一区视频| aa在线免费观看| 国产欧美在线| aa在线观看视频| 亚洲九九精品| 秋霞无码一区二区| 亚洲国产裸拍裸体视频在线观看乱了中文| 久久久国产精华液999999| 日韩电影免费网站| 午夜视频久久久| 精品美女久久| 日本婷婷久久久久久久久一区二区| 啪啪激情综合网| 久久精品99久久| 久久99高清| 日韩欧美一区二区三区久久婷婷| 久久99性xxx老妇胖精品| 九九九九久久久久| 亚洲丝袜美腿一区| 牛人盗摄一区二区三区视频| 偷拍自拍一区| 日韩免费电影一区二区三区| 精品一区二区三区在线| 日本精品一区二区三区高清 久久 日本精品一区二区三区不卡无字幕 | 日本一卡二卡四卡精品| 亚洲激情成人网| 少妇性bbb搡bbb爽爽爽欧美| 精品中文视频在线| 国产福利在线| 日韩在线观看成人| 青青草原av在线| 久久免费国产视频| 成人一区福利| 国产精品亚发布| 99精品国产九九国产精品| 亚洲影院色无极综合| 成人另类视频| 久久艳妇乳肉豪妇荡乳av| 国产在视频线精品视频www666| 亚洲春色在线视频| 自拍偷拍欧美专区| 日韩欧美一区二| 日日夜夜一区二区| 国产永久免费网站| 成人久久18免费网站麻豆 | 五月天激情播播| 国产成人免费网站| 黄色工厂在线观看| 国产精品拍天天在线| 黄视频网站免费看| 性感美女久久精品| 在线免费一区二区| 欧美一区二区美女| 三级黄视频在线观看| 中文字幕日韩免费视频| 在线网址91| 日韩av成人在线观看| 北岛玲精品视频在线观看| 狠狠色伊人亚洲综合网站色| av亚洲免费| 福利在线一区二区| 日本视频一区二区三区| wwwxxxx在线观看| 久久久精品天堂| 成人性生活毛片| 狠狠综合久久av一区二区小说| 亚洲在线观看av| 亚洲国产精彩中文乱码av在线播放| 国产视频三级在线观看播放| 欧美激情免费观看| 国产精品xxx| 久久久神马电影| 欧美黄色精品| 久久撸在线视频| 99久久亚洲一区二区三区青草| 日本激情视频一区二区三区| 欧美午夜片在线免费观看| 国产手机视频在线| 国产一区二区三区日韩欧美| av中文资源在线资源免费观看| 国产精品久久久久久久久久尿| 国产精品色在线网站| 中文字幕中文字幕一区三区| 久久精品女人| 精品人妻一区二区免费| 中文字幕一区二| 毛片在线免费播放| 国产丝袜高跟一区| 欧美xxxx做受欧美88bbw| 国产日韩在线免费| 国产一区二区电影在线观看| 黄页网站在线观看视频| 国产一区二区三区在线观看精品| 日本人亚洲人jjzzjjz| 欧美日韩国产区| 黄色三级网站在线观看| 免费97视频在线精品国自产拍| 成人日韩av| 日韩jizzz| 日日摸夜夜添夜夜添国产精品| 亚洲精品在线视频免费观看| 亚洲国产精品一区二区www| 国产精品国产三级国产普通话对白| 亚洲香蕉成人av网站在线观看| 日韩电影免费看| 国产一区二区三区免费不卡| 精品动漫一区| 中文字幕第九页| 亚洲国产人成综合网站| 亚洲成人黄色片| 欧美肥臀大乳一区二区免费视频| 午夜不卡一区| 免费看av软件| 国产一区二区三区在线观看精品| 26uuu成人网| 欧美一级在线观看| av香蕉成人| 国产精品久久一区二区三区| 精品成人一区| 强迫凌虐淫辱の牝奴在线观看| 亚洲国产精品一区二区www在线| 黄色片一区二区三区| 2019中文字幕在线观看| 美女毛片一区二区三区四区| 午夜精品久久久内射近拍高清| 91蜜桃网址入口| 日本黄色中文字幕| 伊人青青综合网站| 日韩三区四区| 欧美一二三不卡| 不卡视频一二三| 五月天激情四射| 伊人久久久久久久久久久| 欧洲亚洲精品| www.在线观看av| 91免费版在线看| 中文字幕在线观看高清| 久久国产精品久久精品| 91精品尤物| 国产精品wwwww| 中文在线资源观看网站视频免费不卡| 亚洲最大成人在线视频| 欧美国产日韩xxxxx| 老司机成人在线| 999精彩视频| 亚洲激情男女视频| 天堂在线中文| 国产精品亚洲视频在线观看| 欧美a级片网站| 国产熟妇搡bbbb搡bbbb| 欧美日韩另类国产亚洲欧美一级| 尤物在线网址| 美女主播视频一区| 麻豆精品新av中文字幕| 国产亚洲成人精品| 亚洲男人天堂网| 精品视频在线观看免费观看| 狠狠干 狠狠操| 欧美国产精品久久| 丰满少妇被猛烈进入| 国产精品国语对白| 在线欧美不卡| 五月天免费网站| 日韩精品中文字| 成人国产精品一区二区网站| 少妇高潮喷水在线观看| 国产精品国产三级国产普通话蜜臀| 亚洲国产精品久久久久久久 | 欧美日韩在线视频播放| 欧美丰满老妇厨房牲生活| av一区二区高清| 大尺度做爰床戏呻吟舒畅| 欧美日韩国产另类一区| xxxxx性欧美特大|