2017-03-26 1 views
3

Salut à tous. Je suis très nouveau avec Go et Gogland. J'ai un projet Go project in GoglandQuelques conseils avec Go et Gogland

  1. je choisis « Exécuter genre » comme Package - pour exécuter non seulement le fichier mais un projet. Pourquoi il ne peut pas trouver le paquet principal ??
  2. Comment faire pour importer le paquet util.myprinter à main.go pour l'utiliser ??

S'il vous plaît, aidez-moi

Répondre

8

D'abord, la structure générale de votre Go workspace semble se tromper. Vous devez le rendre plus comme ceci:

D: 
|-- go_projects 
| |-- bin 
| |-- pkg 
| |-- src 
| | |-- FirstSteps 
| | | |-- main.go 
| | | +-- util 
| | |   +-- myprinter.go 
| | |-- SecondProject 
| | |-- ThirdProject 
... 

Deuxième déclaration votre import semble être vide, je ne sais pas comment fonctionne goglang mais si vous voulez utiliser tout ce qui est dans votre fichier myprinter.go, vous devez importez le package util, en supposant que le fichier myprinter.go déclare ses package en tant que util en haut.

// FirstSteps/main.go 
package main 

import (
    "FirstSteps/util" 
) 

func main() { 
    util.MyPrinterFunc() 
} 

Et bien sûr, pour être en mesure d'utiliser quoi que ce soit de util il doit d'abord être quelque chose ...

// FirstSteps/util/myprinter.go 
package util 

func MyPrinterFunc() { 
    // do stuff... 
} 

Modifier: Je suis désolé, je ne réponds pas vraiment à votre question initialement. Vous obtenez l'erreur Cannot find package 'main' en raison de la mauvaise configuration de l'espace de travail que j'ai déjà mentionnée. Le Package path indique à Gogland où le package que vous souhaitez exécuter est relatif au répertoire $GOPATH/src. Donc, après avoir correctement configuré votre Wrokspace, vous devez définir Package path sur FirstSteps car le chemin absolu de ce package sera $GOPATH/src/FirstSteps. Si, plus tard, vous souhaitez exécuter le package util, vous devez spécifier Package path comme FirstSteps/util pour que gogland puisse le trouver.

+0

Merci beaucoup l'homme. Mais dans Gogland, vous devez également appeler "get getype" - après que l'importation "FirstSteps/util" fonctionne bien. Et GOPATH pour le projet dans les paramètres doit être "d:/go_projects" dans ce cas. Ce n'est pas si facile de plonger - C++ était plus facile :) – R1K0