GO語言是否有預處理器?當我查看互聯網時,* .pgo轉換爲* .go的方法很少。而且,我不知道它是可行的在圍棋Golang預處理器像C風格的編譯開關
#ifdef COMPILE_OPTION
{compile this code ... }
#elif
{compile another code ...}
,或者 #undef in c
GO語言是否有預處理器?當我查看互聯網時,* .pgo轉換爲* .go的方法很少。而且,我不知道它是可行的在圍棋Golang預處理器像C風格的編譯開關
#ifdef COMPILE_OPTION
{compile this code ... }
#elif
{compile another code ...}
,或者 #undef in c
最接近的方式來實現這一目標是通過使用build constraints。例如:
main.go
package main
func main() {
println("main()")
conditionalFunction()
}
a.go
// +build COMPILE_OPTION
package main
func conditionalFunction() {
println("conditionalFunction")
}
b.go
// +build !COMPILE_OPTION
package main
func conditionalFunction() {
}
輸出:
% go build -o example ; ./example
main()
% go build -o example -tags COMPILE_OPTION ; ./example
main()
conditionalFunction
潛在的有可能使用Java Comment Preprocessor + maven golang plugin,並得到一些類似的行爲,在案件golang代碼看起來像
//#if COMPILE_OPTION
fmt.Println("Ok")
//#else
fmt.Println("No")
//#endif