Я знаю, как сделать функцию, которая объединяет все предоставленные ей параметры и одну для вычитания, и я хотел создать простую математическую библиотеку для добавления и вычитания и умножения и деления, но мой интернет ищет, как скомпилировать в библиотека пришла безрезультатно. Я хотел бы знать, есть ли способ сделать .go в библиотеку, и если да, то как вы это делаете. Я до сих пор очень новен. Если вы знаете, как рассказать мнеКак превратить код Go в библиотеку?
ответ
Если вы запустите go install
на свой пакет, он создаст для вас статическую библиотеку с именем этого пакета и поместит ее в ваш GOPATH/pkg/ARCH/packageName/packageName.a
. Например, если у вас есть $GOPATH
комплект как /home/yourname/go
, вы можете создать следующий файл:
/home/yourname/go/src/myMath/myMath.go
с содержанием:
package myMath
func MyAdd(/* .... */) { // Capatalize the name of the function to allow it to be accessible from outside of this package
// Do stuff
}
Теперь, если вы делаете go install
, вы будете имеют библиотеку myMath.a
в каталоге выше.
Чтобы использовать эту библиотеку из другого пакета идут, myStats
сказать, что вы можете сделать следующее:
package myStats
import "myMath" // import your library. notice the "" around the name
func someFunction(/* .... */) {
r := myMath.MyAdd(/* ..... */)
}
Обратите внимание еще раз, что вы должны капитализироваться имя функции, которые вы хотите использовать из-за пределов пакет. Например, если ваша функция добавления была вызвана myAdd
, тогда она не была бы доступна с myStats
, даже если вы импортируете пакет myMath
.
Редактировать исправлены ошибки, основанные на комментариях от @icza, ниже.
Папка пакета 'pkg' (не' pack'), а 'go build' не создает файл' * .a' (он отбрасывает результат). См. [Что делает сборку сборки?] (Http://stackoverflow.com/questions/30612611/what-does-go-build-build) – icza
Прочтите [это] (https://golang.org/doc/code.html), [это] (http://dave.cheney.net/2014/12/01/five-suggestions-for-setting -up-a-go-project) и [this] (https://github.com/golang/go/wiki/GithubCodeLayout) для начала. О, и [это] (https://blog.golang.org/organizing-go-code) тоже. – kostix