日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

我們一起聊聊Go語言中的數組和切片

來源: 責編: 時間:2024-05-17 08:59:30 146觀看
導讀數組定義一維數組一維數組是具有相同數據類型的固定大小的數據序列。在Go語言中,一維數組的定義形式為var arrayName [size]dataType,其中arrayName是數組的名稱,size是數組的大小,dataType是數組中元素的數據類型。多維

數組

定義

一維數組

一維數組是具有相同數據類型的固定大小的數據序列。在Go語言中,一維數組的定義形式為var arrayName [size]dataType,其中arrayName是數組的名稱,size是數組的大小,dataType是數組中元素的數據類型。QVg28資訊網——每日最新資訊28at.com

多維數組

多維數組是數組的數組,也就是說數組中的元素又是數組。多維數組的定義形式為var arrayName [size1][size2]...[sizeN]dataType,其中size1、size2等是各個維度的大小,dataType是數組中元素的數據類型。QVg28資訊網——每日最新資訊28at.com

使用

數組可以通過索引來訪問和修改元素,索引從0開始計數。例如,對于一維數組arr,可以通過arr[index]來訪問第index個元素;對于多維數組arr,可以通過arr[index1][index2]...[indexN]來訪問多維數組中的元素。QVg28資訊網——每日最新資訊28at.com

package mainimport "fmt"func main() {	// 一維數組的訪問和修改	arr := [5]int{1, 2, 3, 4, 5}	fmt.Println("一維數組:", arr)	fmt.Println("第二個元素:", arr[1]) // 輸出:2	// 修改第三個元素為10	arr[2] = 10	fmt.Println("修改后的數組:", arr)	// 多維數組的訪問和修改	matrix := [2][3]int{		{1, 2, 3},		{4, 5, 6},	}	fmt.Println("多維數組:", matrix)	fmt.Println("第二行第三個元素:", matrix[1][2]) // 輸出:6	// 修改第一個元素為100	matrix[0][0] = 100	fmt.Println("修改后的多維數組:", matrix)}

上面的代碼演示了如何訪問和修改一維數組和多維數組中的元素。QVg28資訊網——每日最新資訊28at.com

初始化

Go語言中數組的初始化有兩種方式:一種是使用數組字面量直接初始化數組,另一種是通過索引逐個賦值來初始化數組。QVg28資訊網——每日最新資訊28at.com

package mainimport "fmt"func main() {	// 使用數組字面量直接初始化數組	arr1 := [3]int{1, 2, 3}	fmt.Println("數組字面量初始化:", arr1)	// 使用索引逐個賦值來初始化數組	var arr2 [3]int	arr2[0] = 1	arr2[1] = 2	arr2[2] = 3	fmt.Println("索引逐個賦值初始化:", arr2)}

上面的代碼演示了使用數組字面量和索引逐個賦值兩種方式來初始化數組。QVg28資訊網——每日最新資訊28at.com

相關函數

數組的常用函數有len()和cap(),其中len()函數用于返回數組的長度,cap()函數用于返回數組的容量。數組還支持切片操作,可以使用切片語法來獲取數組的子集。QVg28資訊網——每日最新資訊28at.com

package mainimport "fmt"func main() {	// 定義數組	arr := [5]int{1, 2, 3, 4, 5}	// 使用 len() 函數獲取數組長度	fmt.Println("數組長度:", len(arr)) // 輸出:5	// 使用 cap() 函數獲取數組容量	fmt.Println("數組容量:", cap(arr)) // 輸出:5	// 使用切片操作獲取數組的子集	subArr := arr[1:3] // 獲取從索引1到索引2(不包含索引3)的子集	fmt.Println("數組的子集:", subArr) // 輸出:[2 3]}

上面的代碼演示了如何使用len()和cap()函數獲取數組的長度和容量,以及如何使用切片操作獲取數組的子集。QVg28資訊網——每日最新資訊28at.com

切片

定義

切片是一個擁有相同類型元素的可變長度的序列。在Go語言中,切片的定義形式為var sliceName []dataType,其中sliceName是切片的名稱,dataType是切片中元素的數據類型。QVg28資訊網——每日最新資訊28at.com

初始化

切片可以通過切片字面量或使用內置的make()函數來初始化。QVg28資訊網——每日最新資訊28at.com

使用切片字面量初始化切片

package mainimport "fmt"func main() {	// 使用切片字面量初始化切片	slice1 := []int{1, 2, 3, 4, 5}	fmt.Println("切片字面量初始化", slice1)}

上面的代碼演示了使用切片字面量來初始化切片。切片字面量可以直接指定切片的內容。QVg28資訊網——每日最新資訊28at.com

使用 make() 函數初始化切片

package mainimport "fmt"func main() {	// 使用 make() 函數初始化切片	slice2 := make([]int, 3, 5) // 創建一個長度為3,容量為5的切片	fmt.Println("使用 make() 函數初始化", slice2)}

上面的代碼演示了使用make()函數來初始化切片。使用make()函數時,需要指定切片的長度和容量。QVg28資訊網——每日最新資訊28at.com

使用

切片可以像數組一樣通過索引來訪問和修改元素,索引從0開始計數。例如,對于切片slice,可以通過slice[index]來訪問第index個元素,并且可以通過該語法來修改切片中的元素值。QVg28資訊網——每日最新資訊28at.com

除了與數組相似的索引操作外,切片還支持動態增加或刪除元素的操作。使用內置的append()函數可以向切片中添加新的元素,而使用切片的切片操作可以從切片中刪除元素。這種靈活的操作使得切片在處理動態數據集合時非常方便。QVg28資訊網——每日最新資訊28at.com

以下是使用切片進行訪問、修改以及動態增加元素的示例代碼QVg28資訊網——每日最新資訊28at.com

package mainimport "fmt"func main() {	// 定義切片	slice := []int{1, 2, 3, 4, 5}	// 訪問切片元素	fmt.Println("第三個元素:", slice[2]) // 輸出:3	// 修改切片元素	slice[2] = 10	fmt.Println("修改后的切片:", slice) // 輸出:[1 2 10 4 5]	// 動態增加元素	slice = append(slice, 6)	fmt.Println("增加元素后的切片:", slice) // 輸出:[1 2 10 4 5 6]}

上面的代碼展示了使用切片進行訪問、修改以及動態增加元素的操作。QVg28資訊網——每日最新資訊28at.com

和數組的區別

  • 大?。簲到M的大小是固定的,而切片的大小是動態可變的。
  • 初始化:數組需要提前聲明大小并分配內存空間,而切片可以動態增長或縮小。
  • 傳遞方式:數組作為函數參數時會進行值拷貝,而切片作為函數參數時是引用傳遞,不會進行值拷貝。
  • 底層實現:數組是值類型,切片是引用類型,底層數據結構不同。

這些是數組和切片在定義、初始化、使用和特性上的主要區別。QVg28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-88734-0.html我們一起聊聊Go語言中的數組和切片

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: PostgreSQL 的事務 ID 回卷,應對措施也很簡單

下一篇: C# 特性(Attribute)詳解及示例,你學會了嗎?

標簽:
  • 熱門焦點
  • Flowable工作流引擎的科普與實踐

    一.引言當我們在日常工作和業務中需要進行各種審批流程時,可能會面臨一系列技術和業務上的挑戰。手動處理這些審批流程可能會導致開發成本的增加以及業務復雜度的上升。在這
  • Python異步IO編程的進程/線程通信實現

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • 共享單車的故事講到哪了?

    來源丨??素斀浥c共享充電寶相差不多,共享單車已很久沒有被國內熱點新聞關照到了。除了一再漲價和用戶直呼用不起了。近日多家媒體再發報道稱,成都、天津、鄭州等地多個共享單
  • 自律,給不了Keep自由!

    來源 | 互聯網品牌官作者 | 李大為編排 | 又耳 審核 | 谷曉輝自律能不能給用戶自由暫時不好說,但大概率不能給Keep自由。近日,全球最大的在線健身平臺Keep正式登陸港交所,努力
  • 小米MIX Fold 3配置細節曝光:搭載領先版驍龍8 Gen2+罕見5倍長焦

    這段時間以來,包括三星、一加、榮耀等等有不少品牌旗下的最新折疊屏旗艦都得到了不少爆料,而小米新一代折疊屏旗艦——小米MIX Fold 3此前也屢屢被傳
  • 華為HarmonyOS 4升級計劃公布:首批34款機型今日開啟公測

    8月4日消息,今天下午華為正式發布了HarmonyOS 4系統,在更流暢的前提下,還帶來了不少新功能,UI設計也有變化,會讓手機煥然一新。華為宣布,首批機型將會在
  • 華為Mate 60保護殼曝光:碩大后置相機模組 凸起程度有驚喜

    這段時間以來,關于華為新旗艦的爆料日漸密集。據此前多方爆料,今年華為將開始恢復一年雙旗艦戰略,除上半年推出的P60系列外,往年下半年的Mate系列也將
  • iQOO 11S新品發布會

    iQOO將在7月4日19:00舉行新品發布會,推出杭州亞運會電競賽事官方用機iQOO 11S。
  • 蘋果MacBook Pro 2021測試:仍不支持平滑滾動

    據10月30日9to5 Mac 消息報道,蘋果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后獲得了不錯的評價,亮點包括行業領先的性能,令人印象深刻的電池續航,精美豐
Top 主站蜘蛛池模板: 新竹市| 建平县| 黄龙县| 勃利县| 吉隆县| 达拉特旗| 苗栗市| 密云县| 宝坻区| 桂阳县| 玛沁县| 新沂市| 宜宾县| 新巴尔虎左旗| 汨罗市| 怀柔区| 宁波市| 腾冲县| 崇左市| 武隆县| 九龙县| 师宗县| 平果县| 庆元县| 宁国市| 南京市| 南乐县| 漯河市| 大荔县| 仲巴县| 河北省| 康马县| 沙洋县| 隆子县| 无棣县| 新和县| 驻马店市| 安康市| 冕宁县| 喀喇沁旗| 焉耆|