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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...