खोज…
परिचय
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