Go語言入門3(數組)

来源:https://www.cnblogs.com/te9uila/archive/2023/04/05/17289155.html
-Advertisement-
Play Games

數組 ​ 數組是具有相同唯一類型的一組已編號且長度固定的數據項序列(這是一種同構的數據結構);這種類型可以是任意的原始類型例如整形、字元串或者自定義類型(結構體、介面)。數組長度也是數組類型的一部分,所以[5]int和[10]int是屬於不同類型的。 :star::在其他語言中數組大多是引用類型,但 ...


數組

​ 數組是具有相同唯一類型的一組已編號且長度固定的數據項序列(這是一種同構的數據結構);這種類型可以是任意的原始類型例如整形、字元串或者自定義類型(結構體、介面)。數組長度也是數組類型的一部分,所以[5]int和[10]int是屬於不同類型的。

⭐:在其他語言中數組大多是引用類型,但是在go語言中,數組是值類型

聲明方式

  1. var + 數組名 + [數組長度] + 數組數據類型(數組內部初始化全為0)
// 聲明一個長度為10的整型數組array,並初始化
var array [10]int
array = [10]int {0,1,2,3,4,5,6,7,8,9}
  1. 數組名 + ":=" + [數組長度] + 數據類型 + {數組初始化}
// 聲明一個長度為10的整型數組array併進行初始化
array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

// 初始化過程也可以單獨初始化特定的位數(用逗號連接)
// 聲明一個長度為10的整型數組array並對數組的第5位進行初始化值為4,第3位進行初始化值為2
array := [10]int{5:4,3:2}
  1. 數組名 + ":=" + [...] + 數據類型 + {數組初始化}("..."可以自動判斷數組長度)
// 聲明一個長度為10的整型數組array併進行初始化
array := [...]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

數組使用

通過下標訪問數組的元素

array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
fmt.Println(arr[5])

遍曆數組

array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
// i:數組下標 j: 下標對應的值
for i, j := range arr {
    fmt.Printf("%d : %d \t", i, j)
}

數組賦值數組

​ 數組可以給同它數據類型,數組長度相同的數組賦值

var array [10]int
arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array = arr

指針數組

​ 指針數組和數組本身差不多,只不過元素類型是指針

// 聲明一個長度為10的整型指針數組
// 併在第5,6,7位上創建記憶體空間
arr := [10]*int{5:new(int),6:new(int),7:new(int)}
// 在第三位上創建記憶體空間
arr[3] = new(int)
// 在第三位上的記憶體空間里賦值為3
*arr[3] = 3
// 輸出第三位對應的記憶體空間地址,以及值
fmt.Println(arr[3])
fmt.Println(*arr[3])

⭐:以上需要註意的是,只可以給第3,5,6,7位賦值,因為只有它們分配了記憶體,才可以賦值,如果我們給索引0賦值,運行的時候,會提示無效記憶體或者是一個nil指針引用。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 僅作為筆記 GUI繼承體系圖 Frame創建 public class Test{ public static void main(String[] args){ //新建Frame Frame frame = new Frame("This is frame title"); //設置可見性 fr ...
  • chromedriver簡單使用 自動瀏覽 ...
  • 原文:cyningsun.com/03-31-2019/live-streaming-danmaku.html 背景 為了更好的支持東南亞直播業務,產品設計為直播業務增加了彈幕。第一期彈幕使用騰訊雲支持,效果並不理想,經常出現卡頓、彈幕偏少等問題。最終促使我們開發自己的彈幕系統。性能要求是需要支持, ...
  • 有空把引入、邏輯、原理介紹給寫了,目前先給大家看看代碼。 將來寫大概會分成這麼幾塊: 汽車運動學自行車模型 跟蹤演算法主流模型及特點 純跟蹤演算法原理推導 代碼介紹 代碼原創,來之不易,請勿不註明轉載。 喜歡點個贊吧!網上許多代碼都跑不起來hh clc; clear; % form road cx = ...
  • 給定兩個字元串 s 和 t ,判斷它們是否是同構的。 如果 s 中的字元可以按某種映射關係替換得到 t ,那麼這兩個字元串是同構的。 每個出現的字元都應當映射到另一個字元,同時不改變字元的順序。不同字元不能映射到同一個字元上,相同字元只能映射到同一個字元上,字元可以映射到自己本身。 示例 1: 輸入 ...
  • 經常會聽到開發者提起單元測試的話題,那麼今天我就帶大伙一起來看看大名鼎鼎的谷歌 C++ 測試框架 GoogleTest。這是系列文章的第二篇。 ...
  • 切片 ​ Go語言切片是一種建立在數組類型之上的抽象,它構建在數組之上並且提供更強大的能力和便捷。解決了數組長度不可變等缺陷 聲明切片 ​ 切片的數據結構非常小,只有三個欄位:指向底層數組的指針,切片長度,切片容量。切片長度是指切片的真實長度,切片容量是指切片可擴展的最大長度,一般來講切片長度要小於 ...
  • 這節講述網路通訊服務端的實現,其開發思想、原則與客戶端的類似,即組合封裝、線程運行時類,面向介面編程等等。源碼面前,了無秘密,我直接以類代碼給大家展示,包含SNetServer類、SNetServerRunning類、INetServerHandler等類。 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...