aeb*_*dak 26

-tags

main_debug.go

// +build debug

package main

import (
    "fmt"
)

func main() {
    fmt.Println("Debug build")
}
Run Code Online (Sandbox Code Playgroud)

main_release.go

// +build !debug

package main

import (
    "fmt"
)

func main() {
    fmt.Println("Release build")
}
Run Code Online (Sandbox Code Playgroud)
go buildgo build -tags debug
  • 如果不是很明显。您可以在这些文件中将常量声明为true或false,因为它们是互斥的。然后,您可以在if语句中使用该常数。Go将根据构建标记认识到if语句始终为true或false,并从非调试构建中删除代码,反之亦然。 (2认同)
  • @JohnLeidegren 谈论的一个例子 [可以在这里找到](https://www.reddit.com/r/golang/comments/a8xb0x/conditional_compilation_and_omission_of_certain/ecenc1c/?utm_source=reddit&utm_medium=web2x&context=3) (2认同)