2016-04-18 128 views
8

GO語言是否有預處理器?當我查看互聯網時,* .pgo轉換爲* .go的方法很少。而且,我不知道它是可行的在圍棋Golang預處理器像C風格的編譯開關

#ifdef COMPILE_OPTION 
    {compile this code ... } 
#elif 
    {compile another code ...} 

,或者 #undef in c

回答

10

最接近的方式來實現這一目標是通過使用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