it-swarm.com.de

Wie verwende ich benutzerdefinierte Pakete in Golang?

Ich versuche, ein benutzerdefiniertes Paket in Go zu erstellen und zu verwenden. Es ist wahrscheinlich etwas sehr offensichtliches, aber ich kann dazu nicht viele Informationen finden. Grundsätzlich habe ich diese beiden Dateien im selben Ordner:

mylib.go

package mylib

type SomeType struct {

}

main.go

package main

import (
    "mylib"
)

func main() {

}

Wenn ich go run main.go versuche, erhalte ich folgende Fehlermeldung:

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

Ich habe versucht, zuerst go build mylib.go auszuführen, aber es scheint nichts zu tun (keine Datei generiert, keine Fehlermeldung). Also eine Idee, wie ich das machen könnte?

155
this.lau_

Vergewissern Sie sich zuerst, dass Sie das Dokument "How to write go" lesen und verstehen.

Die tatsächliche Antwort hängt von der Art Ihres "benutzerdefinierten Pakets" ab.

Wenn es allgemein verwendet werden soll, sollten Sie das so genannte "Github-Code-Layout" verwenden. Grundsätzlich machen Sie aus Ihrer Bibliothek ein separates go get-Tabellenprojekt.

Wenn Ihre Bibliothek für den internen Gebrauch bestimmt ist, können Sie folgendermaßen vorgehen:

  1. Legen Sie das Verzeichnis mit den Bibliotheksdateien unter dem Verzeichnis Ihres Projekts ab.
  2. Verweisen Sie im Rest Ihres Projekts auf die Bibliothek mit ihrem Pfad relativ zum Stamm Ihres Arbeitsbereichs, der das Projekt enthält.

Demonstrieren:

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

In der obersten Ebene von main.go könnten Sie import "myproject/mylib" und es funktioniert OK.

149
kostix

Für diese Art von Ordnerstruktur:

main.go
mylib/
  mylib.go

Der einfachste Weg ist, dies zu verwenden:

import (
    "./mylib"
)
52
this.lau_

Für ein auf GitHub gehostetes Projekt ist Folgendes üblich:

github.com/
  laike9m/
    myproject/
      mylib/
        mylib.go
        ...
      main.go

mylib.go

package mylib

...

main.go

import "github.com/laike9m/myproject/mylib"

...
6
laike9m

eine andere Lösung:
füge src/myproject zu $ ​​GOPATH hinzu.

Dann wird import "mylib" kompiliert.

3
Helin Wang

Ich bin ein erfahrener Programmierer, aber ganz neu in die Go-Welt! Ich gebe zu, dass ich nur wenige Schwierigkeiten hatte, Go zu verstehen. Ich war mit demselben Problem konfrontiert, als ich versuchte, meine go-Dateien in Unterordnern zu organisieren.

GO_Directory (das Verzeichnis, das $ GOPATH zugewiesen wurde)

GO_Directory //the one assigned to $GOPATH
__MyProject
_____ main.go
_____ Entites
_____ Fiboo // in my case, fiboo is a database name
_________ Client.go // in my case, Client is a table name

Auf Datei MyProject\Entities\Fiboo\Client.go

package Fiboo

type Client struct{
    ID int
    name string
}

in der Datei MyProject\main.go

package main

import(
    Fiboo "./Entity/Fiboo" 
)

var TableClient  Fiboo.Client

func main(){
    TableClient.ID = 1
    TableClient.name = 'Hugo'

    // do your things here
}

(Ich lasse Go 1.9 auf Ubuntu 16.04 laufen.) 

Und denk dran, Jungs, ich bin ein Neuling auf Go. Wenn ich schlechte Praxis mache, lass es mich wissen!

2
Diego Favero

paket lexico

type Analizador struct {

}

func main() {

}

En la clase Package main

import (

    "github.com/user/lexico
)
0
Hexagendedor