Go語言入門(10)-數組

訪問數組元素:

數組中的每個元素都可以通過“[]”和一個從0開始的索引進行訪問

數組的長度可由內置函數len來確定。在聲明數組時,未被賦值元素的值是對應類型的零值。下面看一個例子

package mainfunc main(){var planets [8]stringplanets[0] = "Mercury"planets[1] = "Venus"planets[2] = "Earth"earth := planets[2]fmt.Println(earth)fmt.Println(len(planets))fmt.Println(planets[3] = "")
}

結果自行編譯運行查看哈。

數組越界:

Go編譯器在檢測到對越界元素的訪問時會報錯。如果Go編譯器在編譯時未能發現越界錯誤,那么程序在運行時會出現panic,而Panic會導致程序崩潰。

var planets [8]stringi := 8planets[i] = "Pluto"pluto := planets[i]fmt.Println(pluto) //以上程序報錯,數組越界。[8]指數組的內存為8,從0開始數

使用復合字面值初始化數組:

復合字面值(composite literal)是一種給復合類型初始化的緊湊語法。Go的復合字面值允許我們只用一步就完成數組聲明和數組初始化兩步操作:

dwarfs := [5]string{"Ceres", "Pluto", "Haumea", "Makemake", "Eris"}

可以在復合字面值里使用“...”作為數組的長度,這樣,Go編譯器會自動計算出數組的元素數量

無論哪種方式,數組的長度都是固定的。

//復合字面值初始化數組planets1 := [...]string{"Mercury","Venus","Earth","Mars","Jupiter","Saturn","Pluto", //數組的最后一個參數后要補逗號

下面來看兩個遍歷數組的例子:

//遍歷數組,法一:dwarfs := [5]string{"Ceres", "Pluto", "Haumea", "Makemake", "Eris"}for i := 0; i < len(dwarfs); i++ {dwarf := dwarfs[i]      //此處的dwarf和下方的dwarf同時定義但不報錯,是閉包現象:此處的dwarf被封閉在了for循環函數內。fmt.Println(i+1, dwarf) //人性化設計}//法二:for i, dwarf := range dwarfs {fmt.Println(i, dwarf)}

數組的復制:

無論數組賦值給新的變量還是將它傳遞給函數,都會產生一個完整的數組副本。

planets := [...]string{"Mercury","Venus","Earth","Mars","Jupiter","Saturn","Pluto", //數組的最后一個參數后要補逗號}planetsMarkII := planets //數組復制planets[2] = "whoops"fmt.Println(planets)fmt.Println(planetsMarkII)

數組也是一種值,函數通過值傳遞來接受參數。所以數組作為函數的參數就非常的低效。

func terraform(planets [7]string) {for i := range planets {planets[i] = "New" + planets[i]}
}func main(){planets := [...]string{"Mercury","Venus","Earth","Mars","Jupiter","Saturn","Pluto", //數組的最后一個參數后要補逗號}planets[6] = "rock"terraform(planets)fmt.Println(planets)
}

數組的長度也是數組類型的一部分(嘗試將長度不符的數組作為參數傳遞,將會報錯)

函數一般使用slice(切片)而不是數組作為參數,這個內容下一節會講到。

再來看一個二維數組的例子

var board [8][8]stringboard[0][0] = "r"board[0][7] = "r"for column := range board[1] { //把二維數組board的第二行全部替換為Pboard[1][column] = "p"}fmt.Print(board)

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

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

相關文章

為什么經過IPSec隧道后HTTPS會訪問不通?一次隧道環境下的實戰分析

在運維圈子里&#xff0c;大家可能都遇到過這種奇怪的問題&#xff1a;瀏覽器能打開 HTTP 網站&#xff0c;但一換成 HTTPS&#xff0c;頁面就死活打不開。前段時間&#xff0c;我們就碰到這么一個典型案例。故障現象某公司系統在 VPN 隧道里訪問 HTTPS 服務&#xff0c;結果就…

【Linux系統】進程信號:信號的產生和保存

上篇文章我們介紹了Syetem V IPC的消息隊列和信號量&#xff0c;那么信號量和我們下面要介紹的信號有什么關系嗎&#xff1f;其實沒有關系&#xff0c;就相當于我們日常生活中常說的老婆和老婆餅&#xff0c;二者并沒有關系1. 認識信號1.1 生活角度的信號解釋&#xff08;快遞比…

WEB服務器(靜態/動態網站搭建)

簡介 名詞:HTML(超文本標記語言),網站(多個網頁組成一臺網站),主頁,網頁,URL(統一資源定位符) 網站架構:LAMP(linux(系統)+apache(服務器程序)+mysql(數據庫管理軟件)+php(中間軟件)) 靜態站點 Apache基礎 Apache官網:www.apache.org 軟件包名稱:…

開發避坑指南(29):微信昵稱特殊字符存儲異常修復方案

異常信息 Cause: java.sql.SQLException: Incorrect string value: \xF0\x9F\x8D\x8B\xE5\xBB... for column nick_name at row 1異常背景 抽獎大轉盤&#xff0c;抽獎后需要保存用戶抽獎記錄&#xff0c;用戶再次進入游戲時根據抽獎記錄判斷剩余抽獎機會。保存抽獎記錄時需要…

leetcode-python-242有效的字母異位詞

題目&#xff1a; 給定兩個字符串 s 和 t &#xff0c;編寫一個函數來判斷 t 是否是 s 的 字母異位詞。 示例 1: 輸入: s “anagram”, t “nagaram” 輸出: true 示例 2: 輸入: s “rat”, t “car” 輸出: false 提示: 1 < s.length, t.length < 5 * 104 s 和 t 僅…

【ARM】Keil MDK如何指定單文件的優化等級

1、 文檔目標解決在MDK中如何對于單個源文件去設置優化等級。2、 問題場景在正常的項目開發中&#xff0c;我們通常都是針對整個工程去做優化&#xff0c;相當于整個工程都是使用一個編譯器優化等級去進行的工程構建。那么在一些特定的情況下&#xff0c;工程師需要保證我的部分…

零基礎學Java第二十二講---異常(2)

續接上一講 目錄 一、異常的處理&#xff08;續&#xff09; 1、異常的捕獲-try-catch捕獲并處理異常 1.1關于異常的處理方式 2、finally 3、異常的處理流程 二、自定義異常類 1、實現自定義異常類 一、異常的處理&#xff08;續&#xff09; 1、異常的捕獲-try-catch捕…

自建開發工具IDE(一)之拖找排版—仙盟創夢IDE

自建拖拽布局排版在 IDE 中的優勢及初學者開發指南在軟件開發領域&#xff0c;用戶界面&#xff08;UI&#xff09;的設計至關重要。自建拖拽布局排版功能為集成開發環境&#xff08;IDE&#xff09;帶來了諸多便利&#xff0c;尤其對于初學者而言&#xff0c;是踏入開發領域的…

GitHub Copilot - GitHub 推出的AI編程助手

本文轉載自&#xff1a;GitHub Copilot - GitHub 推出的AI編程助手 - Hello123工具導航。 ** 一、GitHub Copilot 核心定位 GitHub Copilot 是由 GitHub 與 OpenAI 聯合開發的 AI 編程助手&#xff0c;基于先進大語言模型實現代碼實時補全、錯誤檢測及文檔生成&#xff0c;顯…

基于截止至 2025 年 6 月 4 日,在 App Store 上進行交易的設備數據統計,iOS/iPadOS 各版本在所有設備中所占比例詳情

iOS 和 iPadOS 使用情況 基于截止至 2025 年 6 月 4 日&#xff0c;在 App Store 上進行交易的設備數據統計。 iPhone 在過去四年推出的設備中&#xff0c;iOS 18 的普及率達 88。 88% iOS 188% iOS 174% 較早版本 所有的設備中&#xff0c;iOS 18 的普及率達 82。 82% iOS 189…

云計算-k8s實戰指南:從 ServiceMesh 服務網格、流量管理、limitrange管理、親和性、環境變量到RBAC管理全流程

介紹 本文是一份 Kubernetes 與 ServiceMesh 實戰操作指南,涵蓋多個核心功能配置場景。從 Bookinfo 應用部署入手,詳細演示了通過 Istio 創建 Ingress Gateway 實現外部訪問,以及基于用戶身份、請求路徑的服務網格路由規則配置,同時為應用微服務設置了默認目標規則。 還包…

Vue 3項目中的路由管理和狀態管理系統

核心概念理解 1. 整體架構關系 這兩個文件構成了Vue應用的導航系統和狀態管理系統&#xff1a; Router&#xff08;路由&#xff09;&#xff1a;控制頁面跳轉和URL變化Store&#xff08;狀態&#xff09;&#xff1a;管理全局數據和用戶狀態兩者協同工作實現權限控制 2. 數據流…

Linux Capability 解析

文章目錄1. 權限模型演進背景2. Capability核心原理2.1 能力單元分類2.2 進程三集合2.3 文件系統屬性3. 完整能力單元表4. 高級應用場景4.1 能力邊界控制4.2 編程控制4.3 容器安全5. 安全實踐建議6. 潛在風險提示 1. 權限模型演進背景 在傳統UNIX權限模型中&#xff0c;采用二進…

vue 監聽 sessionStorage 值的變化

<template><div class"specific-storage-watcher"><h3>僅監聽 userId 變化</h3><p>當前 userId: {{ currentUserId }}</p><p v-if"changeRecord">最近變化: {{ changeRecord }}</p><button click"…

IDEA:控制臺中文亂碼

目錄一、設置字符編碼為 UTF-8一、設置字符編碼為 UTF-8 點擊菜單 File -> settings -> Eitor -> File Encodings , 將字符全局編碼、項目編碼、配置文件編碼統一設置為UTF-8, 然后點擊 Apply 應用設置&#xff0c;點擊 OK 關閉對話框:

[Sql Server]特殊數值計算

任務一&#xff1a;求下方的Num列的中值:參考代碼:use Test go SELECT DISTINCTPERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY Num) over()AS MedianSalary FROM MedianTest;任務二: 下方表中,每個選手有多個評委打分&#xff0c;求每個選手的評委打分中值。參考代碼:use Tes…

01-Docker概述

Docker 的主要目標是:Build, Ship and Run Any App, Anywhere,也就是通過對應用組件的封裝、分發、部署、運行等生命周期的管理,使用戶的 APP 及其運行環境能做到一次鏡像,處處運行。 Docker 運行速度快的原因: 由于 Docker 不需要 Hypervisor(虛擬機)實現硬件資源虛擬化…

Laravel中如何使用php-casbin

一、&#x1f680; 安裝和配置 1. 安裝包 composer require casbin/laravel-authz2. 發布配置文件 php artisan vendor:publish這會生成兩個重要文件&#xff1a; config/lauthz.php - 主配置文件config/lauthz-rbac-model.conf - RBAC 模型配置文件 3. 運行數據庫遷移 php…

算法題打卡力扣第4題:尋找兩個正序數組的中位數(hard))

題目描述 提示&#xff1a; nums1.length m nums2.length n 0 < m < 1000 0 < n < 1000 1 < m n < 2000 -106 < nums1[i], nums2[i] < 106 解答思路 我的想法是先歸并排序再直接返回下標中位數 代碼 double findMedianSortedArrays(int* nums1,…

無人機抗噪模塊技術概述!

一、 技術要點1. 傳感器數據融合與濾波&#xff08;解決感知噪聲&#xff09;核心思想&#xff1a;單一傳感器易受干擾且不全面&#xff0c;通過融合多種傳感器&#xff08;IMU慣性測量單元、GPS、氣壓計、磁力計、視覺傳感器、激光雷達等&#xff09;的數據&#xff0c;利用算…