Go語言數組的定義與操作 - 《Go語言實戰指南》

在 Go 語言中,數組(Array)?是一種定長、同類型的集合。它在內存中是連續分布的,適合用于性能敏感的場景。


一、數組的定義

數組的基本語法如下:

var?數組名?[長度]元素類型
示例:
var?nums?[5]int?????????????//?定義一個長度為5的整型數組
var?names?[3]string?????????//?字符串數組

二、數組的初始化

1. 默認初始化

未賦值元素會被初始化為該類型的零值。

var?a?[3]int
fmt.Println(a)?//?[0?0?0]
2. 顯式初始化
b?:=?[3]int{1,?2,?3}
3. 指定索引初始化
c?:=?[5]int{1:?10,?3:?20}
fmt.Println(c)?//?[0?10?0?20?0]
4. 自動推導數組長度
d?:=?[...]int{1,?2,?3,?4}
fmt.Println(len(d))?//?4

三、數組的訪問與修改

a?:=?[3]string{"Go",?"Java",?"Python"}
fmt.Println(a[0])?//?Goa[2]?=?"Rust"
fmt.Println(a)?//?[Go?Java?Rust]

注意:訪問越界會引發?運行時 panic


四、數組的遍歷

1. 使用?for?循環
arr?:=?[3]int{10,?20,?30}
for?i?:=?0;?i?<?len(arr);?i++?{fmt.Println(arr[i])
}
2. 使用?for range?循環
for?index,?value?:=?range?arr?{fmt.Printf("Index?%d?=?%d\n",?index,?value)
}

五、數組是值類型

數組在傳參或賦值時會復制整個數組,不同于指針或引用類型。

func?modify(arr?[3]int)?{arr[0]?=?100
}a?:=?[3]int{1,?2,?3}
modify(a)
fmt.Println(a)?//?[1?2?3]

如果希望函數內部修改原數組,需要使用指針或切片(slice)。


六、多維數組

Go 支持二維及多維數組。

matrix?:=?[2][3]int{{1,?2,?3},{4,?5,?6},
}
fmt.Println(matrix[1][2])?//?6

七、小結

特性說明
定長數組長度固定,不可動態變化
值類型賦值或傳參會復制整個數組
零值初始化沒有賦值的元素默認是零值
多維支持可以創建二維或更多維數組
不常用于動態場景更多使用切片(slice)

提示:數組是理解切片的基礎,實際開發中更常使用切片(slice)來處理動態集合。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/81747.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/81747.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/81747.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Helm Chart 中配置多個 Docker Registry 地址以實現備用訪問

在 Helm Chart 中配置多個 Docker Registry 地址以實現備用訪問&#xff0c;可以通過以下幾種方式實現&#xff1a; 1. 在 values.yaml 中定義多個 Registry 在 values.yaml 中定義主 Registry 和備用 Registry&#xff0c;以便在部署時靈活切換&#xff1a; # values.yaml …

云原生安全:錯誤策略S3存儲桶ACL設置為Everyone:FullControl

??「炎碼工坊」技術彈藥已裝填! 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 ——從基礎到實踐的深度解析 1. 基礎概念 S3存儲桶與ACL Amazon S3(Simple Storage Service)是AWS提供的對象存儲服務,支持存儲和檢索任意規模的數據。ACL(訪問控制列表…

.NET 8 kestrel 配置PEM,實現內網https

一、生成證書 mkcert 是一個簡單的工具&#xff0c;用于制作本地信任的開發證書。它不需要配置。 mkcert官方倉庫地址&#xff1a;GitHub - FiloSottile/mkcert: A simple zero-config tool to make locally trusted development certificates with any names youd like. 簡…

nodejs快速入門到精通1

參考 nodejs快速入門到精通 菜鳥教程-nodejs nodejs官方文檔 原因 視頻免費 資料收費 筆記還是自己寫吧 安裝 nodejs官網 windows下&#xff1a; #查看nodejs版本 node -v #查看npm版本 npm -v #設置npm為淘寶鏡像源 npm config set registry https://registry.npmmirror.…

nginx負載均衡及keepalive高可用

實驗前期準備&#xff1a; 5臺虛擬機&#xff1a;4臺當做服務器&#xff0c;1臺當做客戶機&#xff08;當然&#xff0c;也可以使用主機的瀏覽器&#xff09;&#xff0c;4臺服務器中&#xff0c;2臺服務器當做后端真實訪問服務器&#xff1b;另外2臺服務器當做負載均衡服務器…

go語法大賞

前些日子單機房穩定性下降&#xff0c;找了好一會才找到真正的原因。這里面涉及到不少go語法細節&#xff0c;正好大家一起看一下。 一、仿真代碼 這是仿真之后的代碼 package mainimport ("fmt""go.uber.org/atomic""time" )type StopSignal…

Android 14 解決打開app出現不兼容彈窗的問題

應用安裝到 Android 14 上&#xff0c;出現如下提示 This app isn’t compatible with the latest version of Android. Check for an update or contact the app’s developer. 通過源碼找原因。 提示的字符 根據字符找到 ./frameworks/base/core/res/res/values/strings.xm…

Linux句柄數過多問題排查

以下是Linux句柄數過多問題的排查與解決方法整理&#xff1a; 一、檢測句柄使用情況 1?.查看系統限制? 單個進程限制&#xff1a;ulimit -n 系統級總限制&#xff1a;cat /proc/sys/fs/file-max 2?.統計進程占用量? 查看指定進程&#xff1a;lsof -p <PID> | wc -…

matlab插值方法(簡短)

在MATLAB中&#xff0c;可以使用interp1函數快速實現插值。以下代碼展示了如何使用spline插值方法對給定數據進行插值&#xff1a; x1 [23,56]; y1 [23,56]; X 23:1:56*4; Y interp1(x1,y1,X,spline);% linear、 spline其中&#xff0c;x1和y1是已知數據點&#xff0c;X是…

時間篩掉了不夠堅定的東西

2025年5月17日&#xff0c;16~25℃&#xff0c;還好 待辦&#xff1a; 《高等數學1》重修考試 《高等數學2》備課 《物理[2]》備課 《高等數學2》取消考試資格學生名單 《物理[2]》取消考試資格名單 職稱申報材料 2024年稅務申報 5月24日、25日監考報名 遇見&#xff1a;敲了一…

hexo博客搭建使用

搭建 Hexo 演示主題為&#xff1a;Keep 使用 文章 創建新文章 ? zymore-blog-keep git:(main) ? hexo new "告別H5嵌入&#xff01;uniApp小程序文件下載與分享完整解決方案" INFO Validating config INFO Created: ~/Desktop/HelloWorld/zymore-blog-k…

React組件開發流程-03.1

此章先以一個完整的例子來全面了解下React組件開發的流程&#xff0c;主要是以代碼為主&#xff0c;在不同的章節中會把重點標出來&#xff0c;要完成的例子如下&#xff0c;也可從官網中找到。 React組件開發流程 這只是一個通用流程&#xff0c;在熟悉后不需要完全遵從。 …

Cloudflare防火墻攔截谷歌爬蟲|導致收錄失敗怎么解決?

許多站長發現網站突然從谷歌搜索結果中“消失”&#xff0c;背后很可能是Cloudflare防火墻誤攔截了谷歌爬蟲&#xff08;Googlebot&#xff09;&#xff0c;導致搜索引擎無法正常抓取頁面。 由于Cloudflare默認的防護規則較為嚴格&#xff0c;尤其是針對高頻訪問的爬蟲IP&…

Ubuntu系統安裝VsCode

在Linux系統中&#xff0c;可以通過.deb文件手動安裝Visual Studio Code&#xff08;VS Code&#xff09;。以下是詳細的安裝步驟&#xff1a; 下載.deb文件 訪問Visual Studio Code的官方網站。 在下載頁面中&#xff0c;找到適用于Linux的.deb文件。 根據你的系統架構&…

降本增效雙突破:Profinet轉Modbus TCP助力包布機產能與穩定性雙提升

在現代工業自動化領域&#xff0c;ModbusTCP和Profinet是兩種常見的通訊協議。它們在數據傳輸、設備控制等方面有著重要作用。然而&#xff0c;由于這兩種協議的工作原理和應用環境存在差異&#xff0c;直接互聯往往會出現兼容性問題。此時&#xff0c;就需要一種能夠實現Profi…

Python對JSON數據操作

在Python中&#xff0c;對JSON數據進行增刪改查及加載保存操作&#xff0c;主要通過內置的json模塊實現。 一、基礎操作 1. 加載JSON數據 ? 從文件加載 使用json.load()讀取JSON文件并轉換為Python對象&#xff08;字典/列表&#xff09;&#xff1a; import json with open…

Linux詳解基本指令(一)

?? 歡迎大家來到小傘的大講堂?? &#x1f388;&#x1f388;養成好習慣&#xff0c;先贊后看哦~&#x1f388;&#x1f388; 所屬專欄&#xff1a;LInux_st 小傘的主頁&#xff1a;xiaosan_blog 制作不易&#xff01;點個贊吧&#xff01;&#xff01;謝謝喵&#xff01;&a…

Node-Red通過Profinet轉ModbusTCP采集西門子PLC數據配置案例

一、內容簡介 本篇內容主要介紹Node-Red通過node-red-contrib-modbus插件與ModbusTCP設備進行通訊&#xff0c;這里Profinet轉ModbusTCP網關作為從站設備&#xff0c;Node-Red作為主站分別從0地址開始讀取10個線圈狀態和10個保持寄存器&#xff0c;分別用Modbus-Read、Modbus-…

React方向:react的基本語法-數據渲染

1、安裝包(js庫) yarn add babel-standalone react react-dom 示例圖.png 2、通過依賴包導入js庫文件 <script src"../node_modules/babel-standalone/babel.js"></script> <script src"../node_modules/react/umd/react.development.js"&g…

k8s部署grafana

部署成功截圖&#xff1a; 要在 Kubernetes (K8s) 集群中拉取 Grafana 鏡像并創建 Grafana 容器&#xff0c;您可以按照以下步驟使用命令行完成操作。下面是完整的命令步驟&#xff0c;包括如何創建 Deployment 和 Service&#xff0c;以及如何將 Grafana 容器暴露給外部。1. 創…