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

一篇文章帶你了解Go語言基礎之數組

開發 后端
這篇文章我們繼續介紹Go語言基礎知識,今天跟大家分享的是基礎數據類型之數組,一起來學習下吧~

[[347712]]

 前言
Hey,大家好呀,我是星期八,這次咱們繼續學習Go基礎之數組扒。

 

什么是數組
我的總結:一個變量,指向一塊連續的,具有長度的,并且是相同類型的一塊內存。

如何定義數組

  1. var 變量名 [元素個數]元素類型 

示例:

  1. package main 
  2.  
  3. func main() { 
  4.     //聲明一個name_list數組,長度為100,里面只能放字符串 
  5.     var name_list [100]string 

注:

  1. var 變量名 [元素個數]元素類型 等同于 var 變量名 變量類型 
  2. 所以 
  3. var name1 [3]int != var name2 [4]int 
  4. 因為變量類型是不一樣,不可以直接進行賦值 

數組初始化

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     //方式一,聲明不賦值 
  7.     //var name_list [10]int 
  8.     //fmt.Println(name_list) //結果:[0 0 0 0 0 0 0 0 0 0] 聲明不賦值,int類型默認是0,其他類型也有默認值 
  9.     // 
  10.     //方式二, 聲明沒有賦值完 
  11.     //var name_list [10]int = [10]int{1, 3} 
  12.     //fmt.Println(name_list) //結果:[1 3 0 0 0 0 0 0 0 0],沒有賦值完的,其他仍然是默認值 
  13.  
  14.     //方式三,聲明完完全賦值 
  15.     //var name_list = [3]int{1, 6, 10} //使用類型推斷方式,同上 
  16.     //fmt.Println(name_list)           //結果:[1 6 10],每個都有值,沒啥可說的 
  17.  
  18.     //方式四,自動推斷個數 
  19.     //var name_list = [...]int{1, 2, 4, 5, 19} //...表示自動推斷個數,不會存在過多或者過少 
  20.     //fmt.Println(name_list)                   //結果:[1 2 4 5 19] 
  21.  
  22.     //方式五,指定索引方式賦值,用的很少 
  23.     var name_list = [...]int{1: 66, 4: 11} //下標1賦值為66,下標4賦值11,其他默認值 
  24.     fmt.Println(name_list)                 //結果:[0 66 0 0 11] 

數組遍歷

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     var name_list = [...]string{"張三", "李四", "王五", "小劉"
  7.     //方式一,普通for遍歷 
  8.     //for i := 0; i < len(name_list); i++ { 
  9.     //fmt.Println(name_list[i]) 
  10.     //} 
  11.  
  12.     //方式二,for range方式 
  13.     for index, name := range name_list { 
  14.         //index是每個的下標,name是值 
  15.         fmt.Println(index, name
  16.   } 

多維數組
二維數組
通常情況下,二維數組基本夠用,最多三維數組,再套娃就完犢子了。

定義一個二維數組

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     //定義一個三行兩列的一個數組 
  7.     var student_list = [3][2]string{ 
  8.         // 列     列 
  9.         {"張三", "李四"}, //行 
  10.         {"王五", "小劉"}, //行 
  11.         {"小七", "王八"}, //行 
  12.     fmt.Println(student_list) 

循環二維數組
同理,定義一個二維數組需要兩層,循環也需要兩層。

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     //定義一個三行兩列的一個數組 
  7.     var student_list = [3][2]string{ 
  8.         // 列     列 
  9.         {"張三", "李四"}, //行 
  10.         {"王五", "小劉"}, //行 
  11.         {"小七", "王八"}, //行 
  12.     //方式一,普通for循環 
  13.     //for i := 0; i < len(student_list); i++ { 
  14.     ////fmt.Println(student_list[i])//每行 
  15.     ///* 
  16.     //      [張三 李四] 
  17.     //      [王五 小劉] 
  18.     //      [小七 王八] 
  19.     //*/ 
  20.     //for j := 0; j < len(student_list[i]); j++ { 
  21.     //      //每列 
  22.     //      fmt.Println(student_list[i][j]) 
  23.     //} 
  24.     //} 
  25.  
  26.     //方式二,for range 
  27.     for _, v := range student_list { 
  28.         //fmt.Println(v) //每行 
  29.         /* 
  30.             [張三 李四] 
  31.             [王五 小劉] 
  32.             [小七 王八] 
  33.         */ 
  34.         for _, b := range v { 
  35.             //每列 
  36.             fmt.Println(b) 
  37.         } 
  38.   } 

多維數組是否可以長度推導
代碼

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     //定義一個三行兩列的一個數組 
  7.     var student_list = [...][...]string{ 
  8.         // 列     列 
  9.         {"張三", "李四"}, //行 
  10.         {"王五", "小劉"}, //行 
  11.         {"小七", "王八"}, //行 
  12.     fmt.Println(student_list) 

報錯

似乎是不可以的,那我只用第一層試試呢。

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.   //定義一個三行兩列的一個數組 
  7.   var student_list = [...][2]string{ 
  8.     // 列     列 
  9.     {"張三", "李四"}, //行 
  10.     {"王五", "小劉"}, //行 
  11.     {"小七", "王八"}, //行 
  12.   } 
  13.   fmt.Println(student_list) 

注:可以得出結論,在第一層時,是可以實現長度自動推導的。

 

責任編輯:姜華 來源: Go語言進階學習
相關推薦

2020-11-11 10:52:54

Go語言C語言

2022-02-16 10:03:06

對象接口代碼

2020-11-05 09:58:16

Go語言Map

2020-12-07 05:59:02

語言Go接口

2021-10-30 10:43:04

語言Go函數

2021-11-03 10:02:07

Go基礎函數

2021-10-09 07:10:31

Go語言基礎

2022-04-27 10:01:43

切片Go封裝

2020-10-23 08:38:19

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-10-22 11:15:47

Go語言變量

2021-09-29 10:00:07

Go語言基礎

2021-10-13 10:00:52

Go語言基礎

2021-10-16 10:17:51

Go語言數據類型

2020-12-23 08:39:11

Go語言基礎技術

2021-01-13 08:40:04

Go語言文件操作

2021-02-20 10:06:14

語言文件操作
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品免费一区二区三区四区 | 在线免费观看日本视频 | av网站免费在线观看 | 日本欧美在线观看视频 | 国产精品美女www爽爽爽 | 一级日韩 | 有码在线 | 欧美高清成人 | 亚洲欧美中文日韩在线 | 2019天天操 | 男女视频在线观看网站 | 久久久久国产 | 青青草免费在线视频 | 精品一区二区三区在线观看国产 | 国产精品久久久久久久久久久新郎 | 久久高清国产视频 | 天堂一区二区三区 | 精品久久国产 | 亚洲国产成人精品女人 | 中文字幕在线观看第一页 | 一区二区三区在线观看视频 | 精品粉嫩aⅴ一区二区三区四区 | 在线欧美视频 | 国产高清久久久 | 国产三级一区二区三区 | 中文字幕一区二区三区四区五区 | 精精国产xxxx视频在线野外 | 亚洲国产一区二区三区在线观看 | 精品国产18久久久久久二百 | 一区二区中文字幕 | 欧美xxxx日本 | 91精品国产欧美一区二区 | 亚洲婷婷六月天 | 欧美一区在线视频 | 美女黄网 | 久久99视频| 91在线一区二区 | 国产成人自拍一区 | 成人性视频免费网站 | 国产一区视频在线 | 热99在线|