成人免费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-05 09:58:16

Go語言Map

2022-02-16 10:03:06

對象接口代碼

2020-11-11 10:52:54

Go語言C語言

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-30 09:04:32

Go語言TCPUDP

2020-12-27 10:15:44

Go語言channel管道

2020-12-07 05:59:02

語言Go接口

2021-10-30 10:43:04

語言Go函數

2021-11-03 10:02:07

Go基礎函數

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-02-20 10:06:14

語言文件操作

2021-01-13 08:40:04

Go語言文件操作
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久久久久久久9999 | 日韩电影中文字幕 | 综合久久色| 欧美亚洲视频在线观看 | 日本黄色短片 | aaa国产大片 | 日韩欧美中文 | 亚洲综合大片69999 | 一区二区在线免费观看 | 美女福利视频 | av在线黄 | 国产精品99精品久久免费 | 看片国产| 久久久网| 天天躁日日躁aaaa视频 | 色综合色综合色综合 | 成人午夜在线观看 | 国产一区二区三区四区在线观看 | 色婷婷激情综合 | 中国大陆高清aⅴ毛片 | 一区二区免费视频 | 成人福利片| 久久久久91 | 99国产精品99久久久久久粉嫩 | 国产乱码精品一区二区三区中文 | 自拍偷拍精品 | 中文字幕中文字幕 | 久色视频在线观看 | 美女一级a毛片免费观看97 | 在线成人 | aⅴ色国产 欧美 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 日韩欧美在线视频 | 国产精品区二区三区日本 | 怡红院免费的全部视频 | 久久综合亚洲 | 亚洲精品二区 | 欧美日韩国产传媒 | 国产精品毛片一区二区三区 | 日韩图区| 国产久视频 |