Does golang unterstütztC-Stil bedingte Kompilierung in golang
#define DEBUG
#ifdef DEBUG
fmt.Println("Debug message...");
#endif
So kann ich eine Debug-Version mit Null-Laufzeit-Overhead bauen?
Does golang unterstütztC-Stil bedingte Kompilierung in golang
#define DEBUG
#ifdef DEBUG
fmt.Println("Debug message...");
#endif
So kann ich eine Debug-Version mit Null-Laufzeit-Overhead bauen?
Go verfügt nicht über einen Präprozessor oder ein Makrosystem. Sie können Tags übergeben, um über das Flag -tags
zu bauen, und Build-Einschränkungen verwenden. Um dies zu tun, benötigen Sie zwei Versionen der gleichen Quelle und nur eine würde abhängig davon, ob das Tag vorhanden ist, erstellt werden.
Blick auf Build Einschränkungen in https://golang.org/pkg/go/build/
main_debug.go
// +build debug
package main
import (
"fmt"
)
func main() {
fmt.Println("Debug build")
}
main_release.go
// +build !debug
package main
import (
"fmt"
)
func main() {
fmt.Println("Release build")
}
Hier go build
mit main_release.go kompilieren würde und go build -tags debug
würde kompilieren mit main_debug.go
Scheint, es ist die beste Praxis für jetzt ... –
Streng sp oken nein. Es gibt keinen Präprozessor und daher keine Präprozessor-Magie. – lofcek
wie in Java gibt es keinen eingebetteten Präprozessor in GoLang, aber wie Java ist es auch möglich, dritte Seite ähnliche Tools zu verwenden. zum Beispiel benutze ich [Java Kommentar Preprozessor + mvn-golang] (https://github.com/raydac/mvn-golang/tree/master/mvn-golang-examples/mvn-golang-examples-preprocessing) und es ist gut Ergebnisse –