Maison > développement back-end > Golang > Comment importer et utiliser des structures de différents packages dans Go ?

Comment importer et utiliser des structures de différents packages dans Go ?

DDD
Libérer: 2024-12-09 14:24:18
original
421 Les gens l'ont consulté

How Do I Import and Use Structs from Different Packages in Go?

Importation de structures à partir de différents packages dans Go

Lorsque vous travaillez avec des applications complexes qui utilisent plusieurs packages et fichiers, il est souvent nécessaire de réutiliser les structures de données définis dans des emplacements distincts. En Java, il est simple d'importer des classes à partir d'autres packages. Cependant, Go adopte une approche différente.

Importer un package

Contrairement à Java, Go n'importe pas directement des types ou des fonctions. Au lieu de cela, nous importons des packages. Une déclaration d'importation nous permet d'accéder à tous les identifiants exportés dans ce package. Par exemple :

import "container/list"
Copier après la connexion

Après avoir importé le package, nous pouvons accéder à ses identifiants exportés en utilisant packagename.Identifiername :

var mylist *list.List = list.New()
Copier après la connexion

Importing Structs

Pour importer une structure définie dans un autre package et fichier, suivez simplement ces étapes :

  1. Déclarez une variable du type souhaité et initialisez-la avec la fonction constructeur.
pq := &PriorityQueue{}
Copier après la connexion
  1. (Facultatif) Importez le package contenant la structure si ce n'est pas déjà fait importé.
import (
    "path/to/package"
)
Copier après la connexion

Exemple

Disons que nous avons une structure PriorityQueue définie dans un fichier séparé :

package path/to/package

type PriorityQueue []*Item

type Item struct {
    value string
    priority int
    index int
}
Copier après la connexion

Pour utilisez cette structure dans un autre fichier, nous pouvons importer le package et déclarer une variable PriorityQueue :

package main

import (
    "fmt"
    "path/to/package"
)

func main() {
    pq := &path/to/package.PriorityQueue{}

    // Use the PriorityQueue
    pq.Push(&path/to/package.Item{value: "item1", priority: 1})

    fmt.Println(pq)
}
Copier après la connexion

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