paquetes mejores librerias library imports golang create code import package go

import - mejores - ¿Cómo usar paquetes personalizados en golang?



mejores librerias de golang (6)

Estoy intentando crear y usar un paquete personalizado en Go. Probablemente sea algo muy obvio, pero no puedo encontrar mucha información sobre esto. Básicamente, tengo estos dos archivos en la misma carpeta:

mylib.go

package mylib type SomeType struct { }

main.go

package main import ( "mylib" ) func main() { }

Cuando trato de go run main.go , obtengo este error:

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

Intenté ejecutar go build mylib.go primero, pero no parece estar haciendo nada (no se generó ningún archivo, no hay ningún mensaje de error). Entonces, ¿alguna idea de cómo podría hacer esto?


Para este tipo de estructura de carpetas:

main.go mylib/ mylib.go

La forma más simple es usar esto:

import ( "./mylib" )


Para un proyecto alojado en GitHub, esto es lo que la gente suele hacer:

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

mylib.go

package mylib ...

main.go

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


Primero, asegúrese de leer y comprender el documento "Cómo escribir el código Go" .

La respuesta real depende de la naturaleza de su "paquete personalizado".

Si está destinado a ser de uso general, considere utilizar el llamado "diseño de código Github" . Básicamente, haces de tu biblioteca un proyecto separado de go get -table.

Si su biblioteca es para uso interno, podría ir así:

  1. Coloque el directorio con los archivos de la biblioteca en el directorio de su proyecto.
  2. En el resto de su proyecto, consulte la biblioteca usando su ruta relativa a la raíz de su espacio de trabajo que contiene el proyecto.

Demostrar:

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

Ahora, en main.go nivel main.go , podría import "myproject/mylib" y funcionaría import "myproject/mylib" .


Soy un programador experimentado, pero, ¡bastante nuevo en Go world! Y confieso que he tenido pocas dificultades para entender Go ... Me enfrenté al mismo problema al tratar de organizar mis archivos go en las subcarpetas. La forma en que resuelvo fue:

GO_Directory (el asignado a $ GOPATH)

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

En el archivo MyProject / Entities / Fiboo / Client.go

package Fiboo type Client struct{ ID int name string }

en el archivo MyProject / main.go

package main import( Fiboo "./Entity/Fiboo" ) var TableClient Fiboo.Client func main(){ TableClient.ID = 1 TableClient.name = ''Hugo'' // do your shit here }

(Estoy ejecutando Go 1.9 en Ubuntu 16.04)

Y recuerda chicos, soy novato en Go. Si lo que estoy haciendo es una mala práctica, ¡házmelo saber!


otra solución:
agregue src/myproject a $ GOPATH.

Luego import "mylib" compilará.


paquete lexico

type Analizador struct { } func main() { }

En la clase package main

import ( "github.com/user/lexico )