數組是一個由 固定長度 的 特定類型元素 組成的序列,一個數組可以由零個或多個元素組成。 數組是值類型
目前創(chuàng)新互聯已為1000+的企業(yè)提供了網站建設、域名、雅安服務器托管、成都網站托管、企業(yè)網站設計、泉港網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
數組的每個元素都可以通過索引下標來訪問,索引下標的范圍是從0開始到數組長度減1的位置,內置函數 len() 可以返回數組中元素的個數。
2.類型的打印,結果的第二種打印方式
3.對元素的修改或者賦值
4.判斷數組是否相等:長度、類型
4.數組的地址:連續(xù)存儲的空間
5.數組的賦值、地址、取值
6.數組的默認值
7.數組的初始化
8.數組的逆置
9.求數組的最大值、最小值、平均值
10.對數組字符串進行連接
11.冒泡排序法的實現
12.數組做函數的參數
13.二維數組:賦值和地址
14.二維數組:打印和輸出
15. 指針數組,每一個元素都是地址
17.數組的內存分配
Go語言標準庫中提供了sort包對整型,浮點型,字符串型切片進行排序,檢查一個切片是否排好序,使用二分法搜索函數在一個有序切片中搜索一個元素等功能。
關于sort包內的函數說明與使用,請查看
在這里簡單講幾個sort包中常用的函數
在Go語言中,對字符串的排序都是按照字節(jié)排序,也就是說在對字符串排序時是區(qū)分大小寫的。
二分搜索算法
Go語言中提供了一個使用二分搜索算法的sort.Search(size,fn)方法:每次只需要比較㏒?n個元素,其中n為切片中元素的總數。
sort.Search(size,fn)函數接受兩個參數:所處理的切片的長度和一個將目標元素與有序切片的元素相比較的函數,該函數是一個閉包,如果該有序切片是升序排列,那么在判斷時使用 有序切片的元素 = 目標元素。該函數返回一個int值,表示與目標元素相同的切片元素的索引。
在切片中查找出某個與目標字符串相同的元素索引
1、數組是多個 相同類型 的數據的組合,一個數組一旦聲明/定義了,其 長度是固定的,不能動態(tài)變化 。
2、var arr []int? ? 這時arr就是一個slice 切片 。
3、數組中的元素可以是任何數據類型,包括值類型和引用類型,但是 不能混用 。
4、數組創(chuàng)建后,如果沒有賦值,有默認值如下:
? ? 數值類型數組:????默認值為 0
? ? 字符串數組:? ? ? ?默認值為 ""
? ? bool數組:? ? ? ? ? ?默認值為 false
5、使用數組的步驟:
? ? (1)聲明數組并開辟空間
? ? (3)給數組各個元素賦值
? ? (3)使用數組
6、數組的下標是從0開始的。
7、數組下標必須在指定范圍內使用,否則報panic:數組越界,比如var arr [5]int的有效下標為0~4.
8、Go的數組屬于 值類型 ,在默認情況下是 值傳遞 ,因此會進行值拷貝。 數組間不會相互影響。
9、如想在其他函數中去修改原來的數組,可以使用 引用傳遞 (指針方式)。
10、長度是數組類型的一部分,在傳遞函數參數時,需要考慮數組的長度,看以下案例:
題1:編譯錯誤,因為不能把[3]int類型傳遞給[]int類型,前者是數組,后者是切片;
題2:編譯錯誤,因為不能把[3]int類型傳遞給[4]int類型;
題3:編譯正確,因為[3]int類型傳給[3]int類型合法。
因為char *strings[]不是指針而是指針數組,那么
temp = strings[top];
strings[top] = strings[seek];
strings[seek] = temp;
這種交換交換的就是主調函數中的數組中的指針,把指向字符串的指針順序改變了,當然按次序輸出就達到排序目的了……