Как использовать пользовательские пакеты в golang?

Я пытаюсь создать и использовать пользовательский пакет в Go. Это, наверное, что-то очень очевидное, но я не могу найти много информации об этом. В принципе, у меня есть эти два файла в одной папке:

mylib.go

package mylib type SomeType struct { } 

main.go

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

Когда я пытаюсь go run main.go , я получаю эту ошибку:

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

go build mylib.go я попытался запустить go build mylib.go но, похоже, он ничего не делает (файл не генерируется, нет сообщения об ошибке). Итак, любая идея, как я могу это сделать?

Во-первых, обязательно прочитайте и поймите документ «Как написать код Go» .

Фактический ответ зависит от характера вашего «пользовательского пакета».

Если он предназначен для общего использования, подумайте о том, чтобы использовать так называемый «макет кода Github» . В принципе, вы создаете свою библиотеку для отдельного проекта go get -table.

Если ваша библиотека предназначена для внутреннего использования, вы можете сделать следующее:

  1. Поместите каталог с файлами библиотеки в каталог вашего проекта.
  2. В остальной части вашего проекта обратитесь к библиотеке, используя ее путь относительно корня вашей рабочей области, содержащей проект.

Демонстрировать:

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

Теперь на главном уровне main.go вы можете import "myproject/mylib" и он будет работать нормально.

Для такой структуры папок:

 main.go mylib/ mylib.go 

Самый простой способ – использовать это:

 import ( "./mylib" ) 

другое решение:
Добавьте src/myproject в $ GOPATH.

Затем будет скомпилирован import "mylib" .

Для проекта, размещенного на GitHub, вот что обычно делают люди:

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

mylib.go

 package mylib ... 

main.go

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

Я опытный программист, но, совершенно новый в мире Go! И я признаюсь, что мне пришлось столкнуться с некоторыми трудностями, чтобы понять, Go … Я столкнулся с этой же проблемой при попытке организовать мои файлы в подпапках. Я решил:

GO_Directory (тот, который назначен для $ 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 

В файле MyProject \ Entities \ Fiboo \ Client.go

 package Fiboo type Client struct{ ID int name string } 

в файле 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 } 

(Я запускаю Go 1.9 на Ubuntu 16.04)

И помните, ребята, я новичок на Go. Если то, что я делаю, это плохая практика, дайте мне знать!

пакет лексико

 type Analizador struct { } func main() { } 

Основной пакет

 import ( "github.com/user/lexico ) 
  • Найдите версию установленного пакета npm
  • Как удалить пакет из Laravel с помощью композитора?
  • Когда сетевой пакет TCP будет fragmentирован на уровне приложения?
  • Как передать ArrayList из одного действия в другое?
  • Как изменить название пакета Android Project в Eclipse?
  • NodeJS требует глобального модуля / пакета
  • Пакет Java не содержит ошибки
  • Импорт двух функций с одинаковым именем с помощью roxygen2
  • Android: Как передать объект Parcelable в цель и использовать getParcelable метод bundle?
  • Как создать интеллектуальный пакет Meteor
  • inst и extdata в R Packaging
  • Давайте будем гением компьютера.