---
title: "数组"
---

> Documentation Index
> Fetch the complete documentation index at: https://notes.linserin.work/llms.txt
> Use this file to discover all available pages before exploring further.

# 数组

## 引言

  数组类似高中数学的[集合](https://baike.baidu.com/item/%E9%9B%86%E5%90%88/2908117)，基本学了高中的数学都知道这是什么东西。

  在编程语言中，数组有元素的多少，对第几个数组进行操作等内容。

  数组有类型，分 `string`,`int` 等类型。

### 声明

声明一个数组可以依靠 `var` 方法，见下方。

```go
var arrayName [size]dataType
```

`arrayName` 是数组的名称，`size` 是数组的大小，`dataType` 是数组中元素的数据类型。

例如下方，定义了数组 balance 长度为 10 类型为 float32：

```go
var balance [10]float32
```

## 初始化

以下实例声明一个名为 numbers 的整数数组，其大小为 5，在声明时，数组中的每个元素都会根据其数据类型进行默认初始化，**对于<u>整数</u>类型，初始值为 0**。

```go
var numbers [5]int
```

如果需要一边声明一边赋值：

```go
var numbers = [5]int{1, 2, 3, 4, 5}
```

以上代码声明一个大小为 5 的整数数组，并将其中的元素分别初始化为 1、2、3、4 和 5。

_如果数组长度不确定，可以使用 **...** 代替数组的长度，编译器会根据元素个数自行推断数组的长度_

```go
var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
// 或者之间这样：
balance := [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
```

### 访问数组元素

```go
var salary float32 = balance[9]
```

这里`salary` 变量就是 `balance`数组的**第 10 个元素**的值（类型为 float32）。

  这里索引的是**第十个数**，读取的**第一位元素的索引数字为 0**。

## 摆烂

到这里数组就基本完了。其余一些操作基本不是特别刚需。

本文大量参考: [菜鸟教程](https://www.runoob.com/go/go-arrays.html)

Source: https://notes.linserin.work/go/array/index.mdx
