Go
सशर्त संकलन के साथ कई प्लेटफार्मों के लिए विकास करना
खोज…
परिचय
प्लेटफ़ॉर्म आधारित सशर्त संकलन गो में दो रूपों में आता है, एक फ़ाइल प्रत्यय के साथ है और दूसरा बिल्ड टैग के साथ है।
वाक्य - विन्यास
- "
// +build
" के बाद, एक एकल मंच या एक सूची का पालन कर सकते हैं - प्लेटफ़ॉर्म इसके द्वारा पूर्ववर्ती द्वारा वापस किया जा सकता है
!
संकेत - अंतरिक्ष से अलग किए गए प्लेटफ़ॉर्म की सूची एक साथ ओरेड हैं
टिप्पणियों
टैग बनाने के लिए कैविट्स:
-
// +build
कंस्ट्रक्शन को पैकेज क्लॉज से पहले ही फाइल के शीर्ष पर रखा जाना चाहिए। - पैकेज टिप्पणियों से अलग करने के लिए इसे एक रिक्त पंक्ति द्वारा अनुसरण किया जाना चाहिए।
टैग और फ़ाइल प्रत्यय दोनों के लिए मान्य प्लेटफार्मों की सूची |
---|
एंड्रॉयड |
डार्विन |
ड्रैगनफ्लाई |
FreeBSD |
linux |
NetBSD |
OpenBSD |
plan9 |
सोलारिस |
खिड़कियाँ |
सबसे अप-टू-डेट प्लेटफॉर्म सूची के लिए https://golang.org/doc/install/source#environment में $GOOS
सूची देखें।
टैग बनाएँ
// +build linux
package lib
var OnlyAccessibleInLinux int // Will only be compiled in Linux
प्लेटफॉर्म लगाकर नेगेट करें !
इससे पहले:
// +build !windows
package lib
var NotWindows int // Will be compiled in all platforms but not Windows
प्लेटफार्मों की सूची को रिक्त स्थान के साथ अलग करके निर्दिष्ट किया जा सकता है
// +build linux darwin plan9
package lib
var SomeUnix int // Will be compiled in linux, darwin and plan9 but not on others
फ़ाइल प्रत्यय
यदि आप अपनी फ़ाइल lib_linux.go
नाम lib_linux.go
, तो उस फ़ाइल की सभी सामग्री केवल लिनक्स वातावरण में संकलित की जाएगी:
package lib
var OnlyCompiledInLinux string
विभिन्न प्लेटफार्मों में अलग व्यवहार को परिभाषित करना
विभिन्न प्लेटफार्मों में एक ही विधि के अलग-अलग कार्यान्वयन हो सकते हैं। यह उदाहरण यह भी बताता है कि टैग और फ़ाइल प्रत्यय कैसे एक साथ उपयोग किए जा सकते हैं।
फ़ाइल main.go
:
package main
import "fmt"
func main() {
fmt.Println("Hello World from Conditional Compilation Doc!")
printDetails()
}
details.go
:
// +build !windows
package main
import "fmt"
func printDetails() {
fmt.Println("Some specific details that cannot be found on Windows")
}
details_windows.go
:
package main
import "fmt"
func printDetails() {
fmt.Println("Windows specific details")
}
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow