предисловие
Студентов, которые только начинают изучать Go, могут смущать несколько понятий:GOROOT
иGOPATH
, давайте поговорим о них сегодня.
воплощать в жизньgo env
, чтобы показать вам соответствующую конфигурацию параметров (часть) моей среды разработки:
GOARCH="amd64"
GOBIN="/Users/chengguilu/goProjects/bin"
GOCACHE="/Users/chengguilu/Library/Caches/go-build"
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/chengguilu/goProjects"
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
GOROOT
Это легко понять, GOROOT представляет собой путь установки компиляции языка go, инструментов, стандартных библиотек и т. д. (например:/usr/local/go
), короче говоря, это путь установки, который доступен после установки GO.
GOPATH
(Окрашенный вес)Рабочая область с настраиваемым путем -workspace, эта переменная должна быть установлена до Go1.7 и не может совпадать с каталогом установки Go. После версии 1.8 GOPATH имеет значение по умолчанию --$HOME/go
. может быть выполненgo env GOPATH
Проверьте, как вы можете видеть выше, мой GOPATH/Users/chengguilu/goProjects
. На самом деле, грубо говоря, GOPATH соответствует каталогу на компьютере.эффект: Используется для хранения кода GO, пройдите исполняемые файлы и соответствующие файлы скомпилированного пакета.
Go Code должен быть помещен в рабочее пространство, каталог Workspace содержит три подкаталогии
- Go src хранит исходный код, который организован в пакеты (каждый пакет соответствует каталогу)
- PKG хранит файлы, сгенерированные после компиляции, такие как: .a файл (статический файл библиотеки)
- bin хранит скомпилированный исполняемый файл
Мы можем собрать исходный пакет с помощью инструмента go и установить полученные двоичные файлы в каталоги pkg и bin.
Давайте попрактикуемся, предыдущий разделHello World
Стартовая программа сохраняется таким образом. Создайте соответствующие каталоги src, pkg и bin в рабочей области и напишитеhello.go
Сохранить какGOPATH/src/hello
содержание.
hello.go
go install hello/
Мы можем выполнить эту команду в любом каталоге системы, и инструмент go будет, в соответствии с указанным GOPATH, вhello/
Найдите исходный код в пакете (следующий раздел расскажет вам о концепции пакета, теперь вы можете понять концепцию, вам не нужно вдаваться в нее). Если выполняется по пути пакетаgo install
, путь к пакету можно не указывать.go install
Команда создает исполняемый двоичный файл, который, в свою очередь, устанавливает двоичный файл в каталог bin рабочей области, в данном случае$GOPATH/bin/hello
.
$GOPATH/bin/hello
бежать ($GOPATH
Пожалуйста, замените сами)Существует более простой способ выполнить исполняемый файл напрямую, но для этого требуется$GOPATH/bin
добавить в ПУТЬ.
твоя первая библиотека
Напишите библиотеку и сделайте так, чтобы программа hello вызывала ее.
существует$GOPATH/src
Создайте каталог пакета подgithub.com/Seekload/stringutil
reverse.go
И сохраните его (не имеет значения, если вы не понимаете файл, по мере углубления изучения будут упомянуты соответствующие точки знаний, здесь используется только для демонстрации):
package stringutil
// Reverse 将其实参字符串以符文为单位左右反转。
func Reverse(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(r)
}
Каталог показан на рисунке:
использоватьgo build
команда для проверки компиляции пакета:
go build github.com/Seekload/stringutil
Его также можно выполнить непосредственно в каталоге пакета.go build
.
Эта команда не создает выходной файл. Если вы хотите вывести, вы должны использоватьgo install
Команда поместит скомпилированные статические файлы в каталог pkg рабочей области.
stringutil
После сборки пакета измените исходный файл hello.go и используйте его:
package main
import (
"fmt"
"github.com/Seekload/stringutil"
)
func main() {
fmt.Println(stringutil.Reverse("!oG ,daolkeeS"))
}
воплощать в жизньgo install hello/
, перекомпилироватьhello.go
, который генерирует исполняемый файлhello
И выполните:
hello.go
, мы представилиgithub.com/Seekload/stringutil
пакет, поэтому повторите выполнениеgo intall hello/
час,stringutil
Пакет будет установлен автоматически.
Уведомление:go install github.com/Seekload/stringutil
будетstringutil.a
ставитьpkg/darwin_amd64
Каталог, отражающий его исходный каталог.darwin_amd64
Эта часть может помочь пересечь платформу и отражать свою операционную систему и архитектуру.
В этом разделе рассматривается концепция пакетов, и некоторым учащимся она может быть непонятна. Не волнуйтесь, в следующем разделе я объясню вам, что такое пакеты на языке Go.
(Конец полного текста)
Оригинал статьи, если нужно перепечатать, указывайте источник!
Добро пожаловать, чтобы отсканировать код и подписаться на официальный аккаунт »Голанг здесь” или двигатьсяseekload.net, см. больше замечательных статей.
Публичная учетная запись «Голанг идет» подготовила для вас подарочный пакет для изучения тайны, и ответьте на [электронную книгу] в фоновом режиме, чтобы получить его!