खोज…


परिचय

go कमांड एक कमांड-लाइन प्रोग्राम है जो गो डेवलपमेंट के प्रबंधन की अनुमति देता है। यह बिल्डिंग, रनिंग और टेस्टिंग कोड के साथ-साथ अन्य गो-संबंधी कार्यों की एक किस्म को सक्षम बनाता है।

दौड जाना

go run एक निष्पादन योग्य फ़ाइल बनाए बिना एक प्रोग्राम चलाएगा। ज्यादातर विकास के लिए उपयोगी है। run केवल उन संकुल को निष्पादित करेगा जिनके पैकेज का नाम मुख्य है

प्रदर्शित करने के लिए, हम एक सरल नमस्ते विश्व उदाहरण का उपयोग करेगा main.go :

package main

import fmt

func main() {
    fmt.Println("Hello, World!")
}

फ़ाइल संकलित किए बिना निष्पादित करें:

go run main.go

आउटपुट:

Hello, World!

पैकेज में कई फ़ाइलें चलाएँ

यदि पैकेज मुख्य है और कई फ़ाइलों में विभाजित है, तो किसी को run कमांड में अन्य फ़ाइलों को शामिल करना होगा:

go run main.go assets.go

बन जाओ

go build एक प्रोग्राम को एक्जीक्यूटेबल फाइल में संकलित करेगा।

प्रदर्शित करने के लिए, हम एक सरल हैलो वर्ल्ड उदाहरण का उपयोग करेंगे।

package main

import fmt
    
func main() {
    fmt.Println("Hello, World!")
}

कार्यक्रम संकलित करें:

go build main.go

build इस मामले में एक निष्पादन योग्य प्रोग्राम बनाता है: main या main.exe । आप आउटपुट Hello, World! को देखने के लिए इस फाइल को चला सकते हैं Hello, World! । आप इसे एक समान सिस्टम पर भी कॉपी कर सकते हैं जिसमें गो स्थापित नहीं है, इसे निष्पादन योग्य बना सकते हैं , और इसे वहां चला सकते हैं।

OS या आर्किटेक्चर को बिल्ड में निर्दिष्ट करें:

आप को संशोधित करके निर्माण करने के लिए क्या प्रणाली या वास्तुकला निर्दिष्ट कर सकते हैं env से पहले build :

env GOOS=linux go build main.go # builds for Linux
env GOARCH=arm go build main.go # builds for ARM architecture

कई फाइलें बनाएं

यदि आपका पैकेज कई फ़ाइलों में विभाजित है और पैकेज का नाम मुख्य है (अर्थात, यह एक आयात योग्य पैकेज नहीं है ), तो आपको सभी फ़ाइलों को बनाने के लिए निर्दिष्ट करना होगा:

go build main.go assets.go # outputs an executable: main

एक पैकेज का निर्माण

main नामक पैकेज बनाने के लिए, आप बस उपयोग कर सकते हैं:

go build . # outputs an executable with name as the name of enclosing folder

साफ जाओ

go clean किसी प्रोग्राम पर इन go build गेन go build समय बनाई गई किसी भी अस्थायी फाइल को go clean करेगा। यह मेकफाइल्स से बची फाइलों को भी साफ करेगा।

जाओ Fmt

go fmt एक प्रोग्राम के सोर्स कोड को एक साफ, मुहावरेदार तरीके से प्रारूपित करेगा जो पढ़ने और समझने में आसान है। यह अनुशंसित है कि आप का उपयोग go fmt किसी भी स्रोत पर इससे पहले कि आप जनता के देखने या करने के लिए प्रविष्ट एक संस्करण नियंत्रण प्रणाली में, यह आसान पढ़ने बनाने के लिए।

किसी फ़ाइल को प्रारूपित करने के लिए:

go fmt main.go

या एक निर्देशिका में सभी फाइलें:

go fmt myProject

आप किसी भी कोड को सरल बनाने का प्रयास करने के लिए gofmt -s ( go fmt नहीं ) का उपयोग कर सकते हैं।

gofmt ( go fmt नहीं go fmt ) का उपयोग रिफैक्टर कोड के लिए भी किया जा सकता है। यह गो को समझता है, इसलिए यह एक सरल खोज और प्रतिस्थापन की तुलना में अधिक शक्तिशाली है। उदाहरण के लिए, यह कार्यक्रम ( main.go ) दिया गया:

package main

type Example struct {
    Name string
}

func (e *Example) Original(name string) {
    e.Name = name
}

func main() {
    e := &Example{"Hello"}
    e.Original("Goodbye")
}

आप विधि की जगह ले सकता Original के साथ Refactor साथ gofmt :

gofmt -r 'Original -> Refactor' -d main.go

जो अंतर का उत्पादन करेगा:

-func (e *Example) Original(name string) {
+func (e *Example) Refactor(name string) {
     e.Name = name
 }
 
 func main() {
     e := &Example{"Hello"}
-    e.Original("Goodbye")
+    e.Refactor("Goodbye")
 }

मिल जाना

go get आयात पथ द्वारा नामित संकुल डाउनलोड करें, साथ ही उनकी निर्भरताएँ भी। यह तब नामित पैकेज स्थापित करता है, जैसे 'गो इंस्टॉल'। स्थापना को नियंत्रित करने के लिए झंडे के निर्माण को भी स्वीकार करें।

go get github.com/maknahar/phonecountry

एक नए पैकेज की जाँच करते समय, लक्ष्य निर्देशिका $GOPATH/src/<import-path> । यदि GOPATH में कई प्रविष्टियाँ हैं, तो पहले वाले का उपयोग करें। इसी तरह, यह $GOPATH/bin में संकलित बायनेरी स्थापित करेगा।

पैकेज की जाँच या अद्यतन करते समय, एक शाखा या टैग की तलाश करें जो गो के स्थानीय रूप से स्थापित संस्करण से मेल खाता हो। सबसे महत्वपूर्ण नियम यह है कि यदि स्थानीय इंस्टॉलेशन "गो 1" संस्करण चला रहा है, तो "गो 1" नामक शाखा या टैग की खोज करें। यदि ऐसा कोई संस्करण मौजूद नहीं है तो यह पैकेज के सबसे हाल के संस्करण को पुनः प्राप्त करता है।

go get -d का उपयोग करते go get , -d ध्वज इसे डाउनलोड करने का कारण बनता है लेकिन दिए गए पैकेज को स्थापित नहीं करता है। -u ध्वज यह पैकेज और उसकी निर्भरता को अद्यतन करने की अनुमति देगा।

वेंडर निर्देशिकाओं में संग्रहीत चेक या अपडेट कोड को कभी भी प्राप्त न करें।

जाओ एन.वी.

go env [var ...] प्रिंट्स पर्यावरण संबंधी जानकारी देते हैं।

डिफ़ॉल्ट रूप से यह सभी सूचनाओं को प्रिंट करता है।

$go env

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/vikashkv/work"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.7.4_1/libexec"
GOTOOLDIR="/usr/local/Cellar/go/1.7.4_1/libexec/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/xf/t3j24fjd2b7bv8c9gdr_0mj80000gn/T/go-build785167995=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"

यदि एक या अधिक चर नाम तर्क के रूप में दिए जाते हैं, तो यह प्रत्येक नामांकित चर के मान को अपनी रेखा पर प्रिंट करता है।

$go env GOOS GOPATH

darwin
/Users/vikashkv/work


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow