2016-04-18 4 views
8

क्या भाषा में प्रीप्रोसेसर है? जब मैंने इंटरनेट देखा, तो कुछ दृष्टिकोण थे जो * .pgo * .go में परिवर्तित हो गए थे। और, मुझे आश्चर्य है कि अगर यह जाओगोलांग प्रीप्रोसेसर जैसे सी-स्टाइल संकलन स्विच

में संभव है
#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 
0

संभवतः यह Java Comment Preprocessor + maven golang plugin का उपयोग करें और कुछ समान व्यवहार प्राप्त करने के लिए, मामला golang कोड में की तरह

//#if COMPILE_OPTION 
fmt.Println("Ok") 
//#else 
fmt.Println("No") 
//#endif 

कुछ उदाहरण यहां रखा गया है https://github.com/raydac/mvn-golang/tree/master/mvn-golang-examples/mvn-golang-examples-preprocessing

दिखेगा संभव है
संबंधित मुद्दे