[TOC]
>[success] ## **1:數組基本介紹:**
>[success] ### **1:Go 語言提供了數組類型的數據結構。**
1)數組是具有相同唯一類型的一組已編號且長度固定的數據項序列,這種類型可以是任意的原始類型例如整形、字符串或者自定義類型。相對于去聲明number0, number1, ..., and number99的變量,
2)使用數組形式numbers[0],numbers[1] ..., numbers\[99\]更加方便且易于擴展。數組元素可以通過索引(位置)來讀取(或者修改),索引從0開始,第一個元素索引為 0,第二個索引為 1,以此類推。

>[success] ### **2:聲明數組:**
1)數組是同一種數據類型元素的集合。 在Go語言中,數組從聲明時就確定,使用時可以修改數組成員,但是數組大小不可變化。 基本語法:
Var 數組變量名 【元素數量】T

2)比如:var a [5]int, 數組的長度必須是常量,并且長度是數組類型的一部分。一旦定義,長度不能變。?[5]int和[10]int是不同的類型。
代碼如下:


>[success] ### **3:數組注意事項:**
數組可以通過下標進行訪問,下標是從0開始,最后一個元素下標是:len-1,訪問越界(下標在合法范圍之外),則觸發訪問越界,會panic。
>[success] ### **4:數組初始化**
**數組4種初始化方法:如下**
**第一種:**

**第二種:類型推導方式**

**第三種:**

**第四種:根據下標來指定(賦)值**

**其他使用方法:類型推導**

>[success] ### **5:訪問數組**
**方式1:**
要求:將控制臺輸入5個成績保存到數組,float64類型

**結果如圖:**

**方式2:**
**for-range**
這是go語言一種獨有的結構,可以用來遍歷訪問,數組的元素
基本語法:
Array01是要遍歷的數組變量名
for index,value := range array01{
........
}
說明:
1)第一個返回值index是數組的下標
2)第二個value是在該下標位置的值
3)他們都是僅在for循環內部可見的局部變量
4)遍歷數組元素的時候,如果不想使用下標index,可以直接把下標index標為下劃線\_
5)index 和value的名稱不是固定的,即程序員可以自行指定,一般命名為index和value
圖下是類型推倒


如果只要值,忽略下標,操作如下:

>[success] ## **6:數組細節**
1)數組 是多個相同類型數據的組合,一個數組一旦聲明定義了,其長度是固定的,不能動態變化。
2)var arr [int這時arr就是一個slice切片,切片后面專門講解,不急哈.
3)數組 中的元素可以是任何數據類型,包括值類型和引用類型,但是不能混用。
4)數組創建后,如果沒有賦值,有默認值
數值類型數組:默認值為0
字符串數組:默認值為
bool數組:默認值為false
5)使用數組的步驟1.聲明數組并開辟空間2給數組各個元素賦值3使用數組
6)數組的 下標是從0開始的。
7)數組 下標必須在指定范圍內使用,否則報panic,數組越界,比如
var arr [5]int則有效下標為0-4
8)Go的數組屬值類型, 在默認情況下是值傳遞,因此會進行值拷貝。數組間不會相互影響

9)如想在其它函數中,去修改原來的數組,可以使用引用傳遞(指針方式) [先體驗下,畫示意圖]

10)長度是數組類型的一部分,在傳遞函數參數時需要考慮數組的長度,看下面案例:

**解答:**
第一題:編譯錯誤,因為,【】int是切片
第二題:編譯錯誤,因為,【4】int和main函數里面的【...】{1,2,3},不是一個類型
第三題:編譯通過
>[success] ## **7:數組應用案例**
1)創建一一個byte類型的26個元素的數組,分別放置'A-Z‘。使用for 循環訪問所有元素并打印出來。提示:字符數據運算'A'+1 > 'B'

2)請求出一個數組的最大值,并得到對應的下標。

3)請求出一個數組的和,和平均值。for -range

4)隨機生成5個數,并將其反轉打印

- Golang語言之旅
- 第一章:初始小節以及安裝
- 一:Golang語言特性
- 二:Windows上安裝Go語言開發包
- 三:在Mac OS上安裝Go語言開發包
- 第二章:GO語言注意事項
- 一:Dos的常用指令
- 第三章:Go初識小菜
- 一:Go語言之變量與常量
- 二:Go內置值-引用類型
- 三:基本的數據類型
- 四:字符串(char)
- 五:布爾類型(bool)
- 六:字符串類型(string)
- 七:基本數據類型的默認值
- 八:基本數據類型的互相轉換
- 九:基本數據類型和string類型的相互轉換
- 十:Golang指針
- 十一:值類型和引用類型
- 十二:標識符和命名規范
- 十三:系統保留關鍵字and預定義標識符
- 十四:fmt常用方法解析
- 第四章:Go運算符
- 一:運算符的基本介紹
- 二:算術運算符
- 2.1:算數運算符細節
- 三:關系運算符
- 3.1:關系運算符細節
- 四:邏輯運算符
- 4.1:邏輯運算符細節及案例
- 五:Go賦值運算符
- 5.1:案例演示賦值運算符的基本使用
- 5.2:賦值運算符的特點
- 六:Go位運算符
- 七:其他運算符
- 八:運算符的優先級
- 九:控制臺輸入語句
- 十:進制
- 十一:位運算
- 第五章:流程控制大綱
- 一:if語句
- 二:switch語句
- 三:for循環
- 第六章:函數-包-錯誤處理
- 一:Go函數
- 二:Go包
- 三:匿名函數
- 四:閉包
- 五:函數defer
- 六:函數參數的傳遞方式
- 七:變量的作用域
- 八:時間和日期相關函數
- 九:new和recover異常
- 十:數組(Array)切片(Section)
- 十一:切片(slice)
- 十二:3 數組的排序和查找
- 第七章:Map
- 第一節:Map基礎認識
- 第二節:Map初始化和make
- 第三節:Map增刪改查
- 第四節:Map的切片
- 第五節:Map的注意事項
- 第八章:面向對象(上)
- 第一節:結構體(值類型)
- 第二節:方法
- 第三節:面向對象編程應用實例
- 第九章:面向對象(下)
- 第一節:面向對象之抽象
- 第二節:面向對象之繼承
- 第三節:面向對象之多態
- 第四節:接口
- 第十章:文件操作
- 第一節:文件基本介紹
- 第二季:寫文件實例操作
- 第三節:JSON
- 第十一章:單元測試
- 第一節:單元測試介紹
- 第二節:單元測試案例
- 第三節:單元測試總結
- 第四節:單元測試案例
- 第十二章:goroutine和channel
- 第一節:goroutine基本介紹
- 第二節:goroutine入門案例
- 第三節:goroutione調度模型
- 第四節:Golang設置運行的CPU數量
- 第十二章:channel
- 第一節:channel基本介紹
- 第二節:channel基本使用
- 第三節:channel案例演示
- 第四節:channel 使用的注意事項
- 第五節:channel練習題
- 第六節:channel的遍歷和關閉
- 第七節:goroutione和channel結合
- 第八節:channel細節處理
- 第十二章:并發模式
- 第十三章:反射reflect
- 第一節:反射基本介紹
- 第二節:反射重要的函數和概念
- 第三節:反射快速入門案例
- 第四節:反射注意事項
- 第五節:反射練習題
- 第六節:反射最佳實踐