


„//go:build' von Go 1.17: Wie unterscheidet es sich von „// build' für die bedingte Kompilierung?
Dec 19, 2024 am 09:26 AMDer Unterschied zwischen //go:build- und // build-Direktiven
Die //go:build-Direktive ist die neue bedingte Kompilierungsdirektive eingeführt in Go 1.17, soll die // Build-Direktive ersetzen. Während Sie mit beiden Direktiven die Bedingungen angeben können, unter denen eine Datei in das Paket aufgenommen werden soll, bietet //go:build mehrere wichtige Verbesserungen:
- Konsistenz: Die // Die go:build-Syntax stimmt mit anderen vorhandenen Go-Anweisungen und -Pragmas überein, z. B. //go:generate.
- Erweitert Ausdrücke: //go:build unterstützt standardmäßige boolesche Ausdrücke (z. B. //go:build foo && bar), während // build eine weniger intuitive Syntax für AND (Kommas) und OR (Leerzeichen) verwendet.
- Codeformatierung: Die //go:build-Direktive wird automatisch von gofmt formatiert. Dies vermeidet häufige Fehler, wie etwa das Nichtlassen einer Leerzeile zwischen der Direktive und der Paketanweisung.
Go 1.18 hat //go:build als bevorzugte Direktive eingeführt, mit Plänen, // build nach und nach zu entfernen Linien. Der Übergang zwischen den beiden Anweisungen wird wie folgt gehandhabt:
- In Go 1.18 und höher ist //go:build die primäre Build-Einschränkungsanweisung.
- Wenn einer Datei ein // fehlt go:build-Direktive, alle // Build-Direktiven gelten weiterhin.
- Wenn eine Datei sowohl //go:build- als auch // build-Direktiven enthält, wird //go:build berücksichtigt die Quelle der Wahrheit, und gofmt aktualisiert // entsprechend.
Das obige ist der detaillierte Inhalt von„//go:build' von Go 1.17: Wie unterscheidet es sich von „// build' für die bedingte Kompilierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich?

Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren?

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go?

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen?

Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache?

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren?

Wie schreibe ich Dateien in Go Language bequem?

Wie schreibe ich Benchmarks, die die reale Leistung in Go genau widerspiegeln?
