खोज…


परिचय

प्लेटफ़ॉर्म आधारित सशर्त संकलन गो में दो रूपों में आता है, एक फ़ाइल प्रत्यय के साथ है और दूसरा बिल्ड टैग के साथ है।

वाक्य - विन्यास

  • " // +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