Maison > développement back-end > Golang > le corps du texte

Parlons de la façon d'utiliser les tableaux dans Golang

PHPz
Libérer: 2023-03-30 09:47:35
original
598 Les gens l'ont consulté

Golang est un langage de programmation largement utilisé, efficace, simple et fiable. Parmi eux, le tableau est un type de données de base dans Golang, conçu pour stocker un ensemble de données du même type. Dans cet article, nous expliquerons comment utiliser les tableaux Golang.

  1. Créer des tableaux

Les tableaux en Golang sont déclarés à l'aide de l'opérateur [], et la longueur et le type du tableau peuvent être spécifiés lors de la déclaration. Par exemple, le code suivant déclare un tableau de type int d'une longueur de 5 : [] 运算符声明,可以在声明时指定数组的长度和类型。例如,以下代码声明了一个长度为 5 的 int 类型数组:

var arr [5]int
Copier après la connexion

也可以使用简短的声明方式:

arr := [5]int{}
Copier après la connexion
  1. 初始化数组

Golang 中的数组可以通过两种方式进行初始化:

  1. 指定每个元素的值:例如,以下代码为数组中的每个元素指定了一个值:
arr := [5]int{1, 2, 3, 4, 5}
Copier après la connexion
  1. 省略长度并使用一组值初始化数组:以下代码声明一个长度未确定的数组,并使用 3 个值进行初始化:
arr := [...]int{1, 2, 3}
Copier après la connexion
  1. 访问数组

要访问 Golang 数组中的元素,请使用 [] 运算符和元素的索引。例如,以下代码打印数组中的第一个元素:

arr := [5]int{1, 2, 3, 4, 5}
fmt.Println(arr[0]) // 输出:1
Copier après la connexion
  1. 数组长度

可以通过调用 len 函数获取数组的长度。例如,以下代码获取数组的长度并打印出来:

arr := [...]int{1, 2, 3}
fmt.Println(len(arr)) // 输出:3
Copier après la connexion
  1. 遍历数组

可以通过循环遍历 Golang 数组中的每个元素。例如,以下代码使用 for 循环遍历数组并打印每个元素:

arr := [5]int{1, 2, 3, 4, 5}
for i := 0; i < len(arr); i++ {
    fmt.Println(arr[i])
}
Copier après la connexion
  1. 作为函数参数

Golang 中的数组可以作为函数的参数传递。例如,以下代码定义了一个函数,它接受一个数组和一个整数参数,并将整数加到数组的每个元素中:

func addNums(arr [5]int, num int) [5]int {
    for i := 0; i < len(arr); i++ {
        arr[i] += num
    }
    return arr
}

arr := [5]int{1, 2, 3, 4, 5}
arr = addNums(arr, 2)
fmt.Println(arr) // 输出:[3 4 5 6 7]
Copier après la connexion

需要注意的是,当数组作为函数参数传递时,会将整个数组复制到函数的形参中。这可能会导致性能问题,特别是在 大型数组的情况下。针对这个问题, Golang 支持指向数组的指针,可以将指针作为参数传递,可以避免数组复制的问题。

  1. 数组切片

在 Golang 中,数组切片是一个基于现有数组的动态数组,它具有可变长度。可以通过使用 make 函数来创建一个空的数组切片。例如,以下代码声明了一个空的字符串数组切片:

var s []string
Copier après la connexion

也可以使用以下语法声明包含初始元素的切片:

s := []string{"foo", "bar", "baz"}
Copier après la connexion

可以使用内置的 append

s := []string{"foo", "bar", "baz"}
s = append(s, "qux")
fmt.Println(s) // 输出:[foo bar baz qux]
Copier après la connexion
Vous pouvez également utiliser une déclaration courte :

s := []string{"foo", "bar", "baz", "qux", "quux"}
s = s[1:4] // 从 "1" 开始,到 "4" 之前
fmt.Println(s) // 输出:[bar baz qux]
Copier après la connexion
    Initialisez le tableau
    1. Les tableaux Golang peuvent être initialisés de deux manières :

    Spécifiez une valeur pour chaque élément : Par exemple, le code suivant spécifie une valeur pour chaque élément du tableau : 🎜🎜rrreee
      🎜 Longueur omise et initialiser le tableau avec un ensemble de valeurs : Le code suivant déclare un tableau de longueur indéterminée et l'initialise avec 3 valeurs : 🎜🎜rrreee
        🎜Accès au tableau🎜🎜🎜Pour accéder au tableau dans l'élément Golang, utilisez l'opérateur [] et l'index de l'élément. Par exemple, le code suivant imprime le premier élément du tableau : 🎜rrreee
          🎜Longueur du tableau🎜🎜🎜Vous pouvez obtenir la longueur du tableau en appelant la fonction len . Par exemple, le code suivant obtient la longueur d'un tableau et l'imprime : 🎜rrreee
            🎜Parcours d'un tableau🎜🎜🎜Vous pouvez parcourir chaque élément d'un tableau Golang en effectuant une boucle. Par exemple, le code suivant utilise une boucle for pour parcourir un tableau et imprimer chaque élément : 🎜rrreee
              🎜En tant que paramètres de fonction🎜🎜🎜Les tableaux en Golang peuvent être transmis comme arguments aux fonctions. Par exemple, le code suivant définit une fonction qui prend un tableau et un paramètre entier et ajoute l'entier à chaque élément du tableau : 🎜rrreee🎜Il est important de noter que lorsqu'un tableau est passé en paramètre de fonction, l'ensemble du tableau est ajouté Copié dans les paramètres formels de la fonction. Cela peut entraîner des problèmes de performances, notamment dans le cas de grandes baies. Pour résoudre ce problème, Golang prend en charge les pointeurs vers des tableaux, qui peuvent être transmis en tant que paramètres pour éviter les problèmes de copie de tableaux. 🎜
                🎜Array Slice🎜🎜🎜Dans Golang, une tranche de tableau est un tableau dynamique basé sur un tableau existant, qui a une longueur variable. Une tranche de tableau vide peut être créée à l'aide de la fonction make. Par exemple, le code suivant déclare une tranche de tableau de chaînes vide : 🎜rrreee🎜 Vous pouvez également déclarer une tranche contenant des éléments initiaux en utilisant la syntaxe suivante : 🎜rrreee🎜 Vous pouvez ajouter des éléments à une tranche à l'aide du append fonction. Par exemple, le code suivant ajoute une nouvelle chaîne à une tranche : 🎜rrreee🎜 Une tranche peut être découpée en utilisant la syntaxe suivante : 🎜rrreee🎜🎜 Résumé 🎜🎜🎜Le tableau Golang est un type de données puissant, efficace, simple et Des fonctionnalités fiables. Dans cet article, vous avez appris à déclarer et initialiser un tableau, à accéder aux éléments du tableau, à obtenir la longueur du tableau et à transmettre des tableaux en tant que paramètres de fonction. De plus, le découpage de tableau dynamique dans Golang est également introduit, expliquant comment créer une tranche vide, ajouter des éléments à la tranche et comment effectuer des opérations de découpage sur la tranche. La maîtrise de ces compétences vous permettra de mieux utiliser les tableaux. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal