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
DDDoriginal
2024-12-09 14:24:18431parcourir

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"

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

var mylist *list.List = list.New()

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{}
  1. (Facultatif) Importez le package contenant la structure si ce n'est pas déjà fait importé.
import (
    "path/to/package"
)

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
}

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)
}

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!

Déclaration:
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