GOPATH ist eine Umgebungsvariable, die in der Go-Sprache verwendet wird. Sie verwendet einen absoluten Pfad, um das Arbeitsverzeichnis des Projekts (auch Arbeitsbereich genannt) anzugeben. Dies ist der Dateipfad, in dem der Golang-Projektcode gespeichert ist. Das GOPATH-Verzeichnis ist im Allgemeinen: 1. bin, das die durch die Kompilierung generierten Binärdateien speichert; 2. pkg, das die drei Ordner XX_amd64, mod und sumdb enthält; 3. src, wo der Golang-Projektcode gespeichert ist;
Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.
1. Das Konzept von GOPATH
GOPATH ist eine Umgebungsvariable, die in der Go-Sprache verwendet wird. Sie verwendet einen absoluten Pfad, um das Arbeitsverzeichnis des Projekts (auch Workspace genannt) bereitzustellen Der Golang-Projektcode wird im Dateipfad gespeichert. GOPATH eignet sich für die Verarbeitung komplexer Projekte, die aus einer großen Menge an Quellcode der Go-Sprache und mehreren Paketen bestehen.
Das Arbeitsverzeichnis ist ein relatives Referenzverzeichnis für die technische Entwicklung. Wenn Sie beispielsweise einen Satz Servercode im Unternehmen schreiben möchten, sind der Desktop, der Computer und der Stuhl an Ihrem Arbeitsplatz Ihr Arbeitsbereich. Das Konzept des Arbeitsbereichs ähnelt dem Konzept des Arbeitsverzeichnisses. Wenn Sie das Konzept des Arbeitsverzeichnisses nicht verwenden und mehrere Personen entwickeln, hat jeder seine eigene Verzeichnisstruktur und der Speicherort zum Lesen der Konfigurationsdateien ist nicht einheitlich2. Verwendung von GOPATH
Das GOPATH-Verzeichnis lautet im Allgemeinen: GOPATH
目录一般为:
1、bin 存放编译生成的二进制文件。比如 执行命令 go get github.com/google/gops,bin目录会生成 gops 的二进制文件。
2、pkg 其中pkg下面以下三个文件夹。
- XX_amd64: 其中 XX 是目标操作系统,比如 mac 系统对应的是darwin_amd64, linux 系统对应的是 linux_amd64,存放的是.a结尾的文件。
- mod: 当开启go Modules 模式下,go get命令缓存下依赖包存放的位置
- sumdb: go get命令缓存下载的checksum数据存放的位
3、src 存放golang项目代码的位置
如下是一个完整的Go项目的开发目录:
my-go // my-go为GOPATH目录 -- bin -- myApp1 // 编译生成 -- myApp2 // 编译生成 -- myApp3 // 编译生成 -- pkg 依赖包编译后的*.a文件// -- src -- MyApp1 // 项目1 -- models -- controllers -- others -- main.go -- MyApp2 // 项目2 -- models -- controllers -- others -- main.go
三、造成问题
在使用 GOPATH 模式下,我们需要将应用代码存放在固定的$GOPATH/src
目录下,且如果执行go get
使用第三方类库的时候会自动下载并安装到$GOPATH
1. Bin speichert die durch Kompilierung generierten Binärdateien. Wenn Sie beispielsweise den Befehl go get github.com/google/gops ausführen, wird die Binärdatei von gops im bin-Verzeichnis generiert.
2. pkg Unterhalb von pkg befinden sich drei Ordner. XX_amd64: wobei XX das Zielbetriebssystem ist. Das Mac-System entspricht beispielsweise darwin_amd64, das Linux-System entspricht linux_amd64 und Dateien mit der Endung .a werden gespeichert.
mod: Wenn der Go-Module-Modus aktiviert ist, der Speicherort, an dem die abhängigen Pakete im Go Get-Befehlscache gespeichert werdenden Anwendungscode im festen Verzeichnis Verwendung von GOPATH Im Modus müssen wir
- Sumdb: Der Speicherort, an dem die vom Go Get-Befehlscache heruntergeladenen Prüfsummendaten gespeichert werden
3. src storage golang projectDer Speicherort des Codes![]()
- rrreee
Das Folgende ist das Entwicklungsverzeichnis eines vollständigen Go-Projekts:
Drei. Ursache für Probleme
$GOPATH/src
speichern , und wenn Sie go get und verwenden Sie eine Bibliothek eines Drittanbieters. Diese wird automatisch heruntergeladen und im Verzeichnis <code>$GOPATH
installiert. Der Golang-Code des Projekts ist mit Golang-Dateien von Drittanbietern gemischt. Wenn für jedes Projekt dieselben Abhängigkeiten erforderlich sind, laden wir eine große Anzahl doppelter Abhängigkeitspakete von Drittanbietern in verschiedenen GoPath-Quellen herunter, die ebenfalls Speicherplatz beanspruchen viel Speicherplatz
- Muss das Verzeichnis angeben,
- Bei Verwendung des Befehls go get kann die abzurufende Version nicht angegeben werden
sind, können keine konsistenten Versionsnummern von Drittanbietern synchronisiert werden Beim Ausführen von Go-Anwendungen gibt es keine Garantie dafür, dass andere die gleiche Version wie die Drittanbieterbibliothek verwenden, von der Sie voraussichtlich abhängig sind.
🎜🎜🎜🎜Wir legen unterschiedliche GoPaths für verschiedene Projekte fest: 🎜🎜🎜 Es ist für uns sehr einfach, mehrere Golang-Projekte zu verwalten Projektstruktur. Wenn wir alle Projekte unter dasselbe GoPath-src-Paket stellen, wird die Projektstruktur sehr verwirrend und schwer zu verwalten. 🎜🎜🎜Aber wenn wir uns auf Pakete von Drittanbietern verlassen müssen, liegen auch die Nachteile der Festlegung unterschiedlicher GoPaths für verschiedene Projekte auf der Hand: 🎜🎜🎜🎜🎜Wenn die von Drittanbietern abhängigen Pakete mit unseren eigenen Golang-Paketen gemischt werden, ist dies der Fall Die Verwaltung von Projektdateien wird uns gewisse Probleme bereiten. 🎜🎜🎜🎜 Verschiedene GoPaths müssen Abhängigkeiten herunterladen, daher gibt es viele doppelte Abhängigkeiten auf der Festplatte, die viel Speicherplatz beanspruchen. 🎜🎜🎜🎜🎜🎜Das Einrichten eines GoPath-Verzeichnisses zur Lösung des Problems doppelter Abhängigkeiten, das Einrichten verschiedener GoPath-Verzeichnisse und das Lösen des Problems der verwirrenden Golang-Projektstruktur ist an sich schon ein kontroverses Thema. 🎜🎜🎜Um all diese Probleme zu lösen, führte Golang schließlich das Konzept von GoModule ein.
【Verwandte Empfehlungen: Go-Video-Tutorial, Programmierunterricht】
Das obige ist der detaillierte Inhalt vonWas ist die Go-Sprache? GOPATH. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

C eignet sich besser für Szenarien, in denen eine direkte Kontrolle der Hardware -Ressourcen und hohe Leistungsoptimierung erforderlich ist, während Golang besser für Szenarien geeignet ist, in denen eine schnelle Entwicklung und eine hohe Parallelitätsverarbeitung erforderlich sind. 1.Cs Vorteil liegt in den nahezu Hardware-Eigenschaften und hohen Optimierungsfunktionen, die für leistungsstarke Bedürfnisse wie die Spieleentwicklung geeignet sind. 2. Golangs Vorteil liegt in seiner präzisen Syntax und der natürlichen Unterstützung, die für die Entwicklung einer hohen Parallelitätsdienste geeignet ist.

Golang zeichnet sich in praktischen Anwendungen aus und ist für seine Einfachheit, Effizienz und Parallelität bekannt. 1) Die gleichzeitige Programmierung wird über Goroutinen und Kanäle implementiert, 2) Flexibler Code wird unter Verwendung von Schnittstellen und Polymorphismen geschrieben, 3) Vereinfachen Sie die Netzwerkprogrammierung mit NET/HTTP -Paketen, 4) Effiziente gleichzeitige Crawler erstellen, 5) Debuggen und Optimierung durch Tools und Best Practices.

Zu den Kernmerkmalen von GO gehören die Müllsammlung, statische Verknüpfung und Unterstützung der Parallelität. 1. Das Parallelitätsmodell von GO -Sprache realisiert eine effiziente gleichzeitige Programmierung durch Goroutine und Kanal. 2. Schnittstellen und Polymorphismen werden durch Schnittstellenmethoden implementiert, so dass verschiedene Typen einheitlich verarbeitet werden können. 3. Die grundlegende Verwendung zeigt die Effizienz der Funktionsdefinition und des Aufrufs. 4. In der fortgeschrittenen Verwendung bieten Scheiben leistungsstarke Funktionen der dynamischen Größenänderung. 5. Häufige Fehler wie Rassenbedingungen können durch Getest-Race erkannt und gelöst werden. 6. Leistungsoptimierung wiederverwenden Objekte durch Sync.Pool, um den Druck der Müllabfuhr zu verringern.

Go Language funktioniert gut beim Aufbau effizienter und skalierbarer Systeme. Zu den Vorteilen gehören: 1. hohe Leistung: Kompiliert in den Maschinencode, schnelle Laufgeschwindigkeit; 2. gleichzeitige Programmierung: Vereinfachen Sie Multitasking durch Goroutinen und Kanäle; 3. Einfachheit: präzise Syntax, Reduzierung der Lern- und Wartungskosten; 4. plattform: Unterstützt die plattformübergreifende Kompilierung, einfache Bereitstellung.

Verwirrt über die Sortierung von SQL -Abfragenergebnissen. Während des Lernens von SQL stoßen Sie häufig auf einige verwirrende Probleme. Vor kurzem liest der Autor "Mick-SQL Basics" ...

Die Beziehung zwischen Technologiestapelkonvergenz und Technologieauswahl in der Softwareentwicklung, der Auswahl und dem Management von Technologiestapeln ist ein sehr kritisches Problem. In letzter Zeit haben einige Leser vorgeschlagen ...

Golang ...

Wie man drei Strukturen in der GO -Sprache vergleicht und umgeht. Bei der Go -Programmierung ist es manchmal notwendig, die Unterschiede zwischen zwei Strukturen zu vergleichen und diese Unterschiede auf die ...


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft