198 votes

Comment utiliser les paquets personnalisés dans golang?

Je suis en train de créer et d'utiliser un package personnalisé en Aller. C'est probablement quelque chose de très évident, mais je ne trouve pas beaucoup d'informations à ce sujet. En gros, j'ai ces deux fichiers dans le même dossier:

mylib.aller

package mylib

type SomeType struct {

}

principal.aller

package main

import (
    "mylib"
)

func main() {

}

Lorsque j'essaie d' go run main.go, j'obtiens cette erreur:

main.go:4:2: import "mylib": cannot find package

J'ai essayé d'exécuter go build mylib.go à la première, mais elle ne semble pas faire quoi que ce soit (pas de fichier généré, aucun message d'erreur). Donc aucune idée de comment je pourrais faire cela?

186voto

kostix Points 11762

Tout d'abord, assurez-vous de lire et de comprendre le "Comment écrire Go code" document.

La réponse réelle dépend de la nature de votre "package personnalisé".

S'il est destiné à être à usage général, envisager le recours à la soi-disant "Github le code de mise en page". Fondamentalement, vous faites de votre bibliothèque séparée go get-table de projet.

Si votre bibliothèque est à usage interne, vous pourrait aller comme ceci:

  1. Placer le répertoire avec les fichiers de la bibliothèque dans le répertoire de votre projet.
  2. Dans le reste de votre projet, reportez-vous à la bibliothèque à l'aide de son chemin relatif à la racine de votre espace de travail contenant le projet.

Pour le démontrer:

src/
  myproject/
    mylib/
      mylib.go
      ...
    main.go

Maintenant, dans le haut-niveau main.go, vous pourriez import myproject/mylib et cela fonctionne OK.

76voto

this.lau_ Points 23290

Pour ce type de structure de dossier:

 main.go
mylib/
  mylib.go
 

Le moyen le plus simple est d'utiliser ceci:

 import (
    "./mylib"
)
 

2voto

Helin Wang Points 285

une autre solution: ajoutez src/myproject à $ GOPATH.

Ensuite, import "mylib" sera compilé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X