Как использовать пользовательские пакеты в golang?
Я пытаюсь создать и использовать пользовательский пакет в Go. Это, наверное, что-то очень очевидное, но я не могу найти много информации об этом. В принципе, у меня есть эти два файла в одной папке:
mylib.go
package mylib type SomeType struct { }
main.go
- Как передать ArrayList из одного действия в другое?
- Нет видимой привязки для глобальной переменной Примечание в R CMD check
- Как использовать Parcel в Android?
- Создание кросс-платформенного приложения Java SWT
- Запуск Java в пакете из командной строки
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
но, похоже, он ничего не делает (файл не генерируется, нет сообщения об ошибке). Итак, любая идея, как я могу это сделать?
- Android VpnService для захвата пакетов не будет захватывать пакеты
- Ошибка при установке пакета R
- Целевой пакет MSBuild не найден
- Переопределить функцию, импортированную в пространстве имен
- MVC4 StyleBundle не разрешает изображения
- Какова цель определения пакета в файле Java?
- Узел узла (Grunt) установлен, но недоступен
- Пакет Java не содержит ошибки
Во-первых, обязательно прочитайте и поймите документ «Как написать код Go» .
Фактический ответ зависит от характера вашего «пользовательского пакета».
Если он предназначен для общего использования, подумайте о том, чтобы использовать так называемый «макет кода Github» . В принципе, вы создаете свою библиотеку для отдельного проекта go get
-table.
Если ваша библиотека предназначена для внутреннего использования, вы можете сделать следующее:
- Поместите каталог с файлами библиотеки в каталог вашего проекта.
- В остальной части вашего проекта обратитесь к библиотеке, используя ее путь относительно корня вашей рабочей области, содержащей проект.
Демонстрировать:
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 )