Maison > développement back-end > Golang > Structure du package Go : avons-nous besoin d'un fichier « package.go », comment importer des fichiers internes et pouvons-nous accéder aux types dans les fichiers ?

Structure du package Go : avons-nous besoin d'un fichier « package.go », comment importer des fichiers internes et pouvons-nous accéder aux types dans les fichiers ?

Barbara Streisand
Libérer: 2024-11-26 04:04:08
original
446 Les gens l'ont consulté

Go Package Structure: Do We Need a `package.go` File, How to Import Internal Files, and Can We Access Types Across Files?

Structure du package linguistique Go : une explication détaillée

Lorsque vous travaillez avec Go, le respect des conventions établies est crucial. Cependant, la compréhension de ces conventions est primordiale avant leur mise en œuvre effective. Cet article répond à une question fréquemment posée concernant la structure du package Go.

Question

Configuration : Suivant la structure de projet recommandée, nous avoir :

$GOPATH/
  src/
    github.com/
      username/
        projectname/
          main.go
          numbers/
            rational.go
            real.go
            complex.go
Copier après la connexion

main.go :

package main

import (
  "fmt"
  "./numbers"
)

func main() {
  fmt.Println(numbers.Real{2.0})
}
Copier après la connexion

Questions :

  • Avons-nous besoin un fichier package.go dans chaque dossier de package ?
  • Comment importer des fichiers dans le même package dans number.go ?
  • Pouvons-nous définir des types comme Real dans real.go et y accéder dans main.go en tant que fmt.Println(numbers.Real{2.0}) ?

Réponse

1. Fichier package.go

L'hypothèse selon laquelle chaque répertoire de package nécessite un fichier package.go est incorrecte. Dans Go, les fichiers d'un même répertoire sont automatiquement regroupés dans un package. La création d'un fichier package.go n'est pas nécessaire.

2. Importation de fichiers dans un package

Go ne prend pas en charge l'importation de fichiers. Les numéros de package doivent être importés directement, plutôt que des fichiers individuels comme rational.go, real.go et complex.go. Dans notre exemple, supprimez le préfixe ./ et utilisez import "github.com/username/projectname/numbers".

3. Types de partage

Les types comme Real doivent être définis dans un fichier au sein du package, tel que real.go. Comme les fichiers appartiennent au même package, aucune instruction d’importation supplémentaire n’est nécessaire. Accéder au type Real dans main.go en tant que fmt.Println(numbers.Real{2.0}) est correct.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal