Импорт локальной библиотеки и файлов в приложении
Я новичок в Go (но не в программировании), мне нравится язык, но у меня есть немного проблем с полным пониманием того, как я должен создавать внутренние библиотеки в приложении через пакеты. Для справки, получение внешних пакетов, а затем импорт / использование их в порядке.
предположим, я делаю заявление A.
/home/me/A/a.go (package main)
тогда я понимаю.пойдите, начните быть довольно большим, поэтому я разрезал его на две части
/home/me/A/a.go (package main)
/home/me/A/b.go (package main)
как я должен импорт / включить b.перейти от a.перейти, чтобы сделать его функцию доступной ?
как продолжение вопроса, В a я манипулирую множеством объектов O, поэтому я считаю, что было бы намного лучше, если бы я просто дал им свой собственный пакет и инкапсулировал функциональные возможности в общедоступном/экспортированном api. Как мне это сделать ?
Я пробовал создать ./lib/o.go
(пакет o) и import lib/o
но я продолжаю получать ошибки, такие как
./a.go:6: imported and not used: "o"
./a.go:43: undefined: o
у меня нет ГОПАТА в моем env, но я попытался export GOPATH=$GOPATH:/home/me/A
и результат не изменился.
Я попытался прочитать статью о "GO layout", но сразу почувствовал себя слишком подавляющим, и мне бы очень понравилось более простое объяснение этого" маленького " шага, который я пытаюсь сделать
спасибо !
GOPATH / src/me/a / a.go:
package main
func main() {
test()
}
GOPATH / src/me/a / test.go:
package main
import "fmt"
func test() {
fmt.Println("test func !")
}
Exec:
$ go run a.go
# command-line-arguments
./a.go:4: undefined: test
EDIT: получил мой ответ здесь: https://groups.google.com/forum/?fromgroups#!topic/golang-nuts/qysy2bM_o1I
либо список всех файлов в go run (go run a.go test.go
) или используйте go build
и запустите полученный исполняемый файл.
1 ответов
вы пытаетесь использовать систему go build, не следуя необходимым макетам каталогов. Вы много выиграете от чтения документ.
короче говоря, это, wrt go tool, шоу пробки:
вы должны имейте действительный, экспортированный GOPATH
файлы пакетов с путем импорта "example / foo" должны находится в
$GOPATH/src/example/foo
справочник.
для получения более подробной информации см. выше связанную статью.