คำถามติดแท็ก go

Go เป็นภาษาโปรแกรมโอเพนซอร์ซ มันถูกพิมพ์แบบคงที่ด้วยไวยากรณ์ที่ได้มาอย่างหลวม ๆ จาก C เพิ่มการจัดการหน่วยความจำอัตโนมัติความปลอดภัยของประเภทความสามารถในการพิมพ์แบบไดนามิกบางชนิดในตัวเพิ่มเติมเช่นอาร์เรย์ความยาวตัวแปร (เรียกว่าชิ้น) และแผนที่คีย์ค่าและ ห้องสมุดมาตรฐานขนาดใหญ่

4
ประกาศอาร์เรย์คงที่
ฉันเหนื่อย: const ascii = "abcdefghijklmnopqrstuvwxyz" const letter_goodness []float32 = { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 } const letter_goodness = { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 } const letter_goodness = []float32 { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 } ขั้นแรกการประกาศและการเริ่มต้นทำงานได้ดี แต่ตัวที่สองสามและสี่ไม่ทำงาน ฉันจะประกาศและเริ่มต้นอาร์เรย์อาร์เรย์ของ const ได้อย่างไร
164 arrays  go  const 

2
วิธีที่แนะนำในการเชื่อมต่อกับ MySQL จาก Go คืออะไร?
ฉันกำลังมองหาโซลูชันที่เชื่อถือได้เพื่อเชื่อมต่อกับฐานข้อมูล MySQL จาก Go ฉันเคยเห็นห้องสมุดรอบ ๆ แล้ว แต่ก็ยากที่จะกำหนดสถานะที่แตกต่างของความสมบูรณ์และการบำรุงรักษาในปัจจุบัน ฉันไม่มีความต้องการที่ซับซ้อน แต่ฉันต้องการที่จะรู้ว่าสิ่งที่ผู้คนพึ่งพาหรืออะไรคือโซลูชั่นมาตรฐานที่สุดในการเชื่อมต่อกับ MySQL
163 mysql  database  go 


8
วิธีการสร้างเครื่องกำเนิดจำนวนสุ่มอย่างถูกต้อง
ฉันกำลังพยายามสร้างสตริงแบบสุ่มใน Go และนี่คือรหัสที่ฉันเขียน: package main import ( "bytes" "fmt" "math/rand" "time" ) func main() { fmt.Println(randomString(10)) } func randomString(l int) string { var result bytes.Buffer var temp string for i := 0; i < l; { if string(randInt(65, 90)) != temp { temp = string(randInt(65, 90)) result.WriteString(temp) i++ } } …
160 random  go 

5
ตกลงไหมที่จะเปิดช่องไว้หรือไม่?
ตกลงหรือไม่ที่จะปล่อยให้ช่อง Go เปิดตลอดไป (ไม่เคยปิดช่องสัญญาณ) ถ้าฉันไม่เคยตรวจสอบสถานะของมัน? มันจะนำไปสู่การรั่วไหลของหน่วยความจำ? รหัสต่อไปนี้ตกลงหรือไม่ func (requestCh chan<- Request) GetResponse(data RequestData) Response { reply := make(chan Response) requestCh <- Request{data: data, replyCh: reply} return <-reply }
160 go  channel 

6
สามารถส่งผ่านฟังก์ชั่นเป็นพารามิเตอร์ได้หรือไม่
ใน Java ฉันสามารถทำสิ่งที่ชอบ derp(new Runnable { public void run () { /* run this sometime later */ } }) และ "รัน" รหัสในวิธีการในภายหลัง มันเป็นความเจ็บปวดที่ต้องจัดการ (ชั้นในที่ไม่ระบุชื่อ) แต่สามารถทำได้ Go มีบางอย่างที่ช่วยให้ฟังก์ชัน / การติดต่อกลับถูกส่งผ่านเป็นพารามิเตอร์หรือไม่
158 function  go 


6
วิธีตั้งค่าเริ่มต้นใน Go structs
มีคำตอบ / เทคนิคหลายประการสำหรับคำถามด้านล่าง: จะตั้งค่าเริ่มต้นเป็นโครงสร้าง golang ได้อย่างไร? วิธีการเริ่มต้นโครงสร้างใน golang ฉันมีคำตอบสองสามข้อ แต่จำเป็นต้องมีการอภิปรายเพิ่มเติม


4
เปลี่ยนค่าในขณะที่วนซ้ำ
สมมติว่าฉันมีประเภทเหล่านี้: type Attribute struct { Key, Val string } type Node struct { Attr []Attribute } และฉันต้องการที่จะทำซ้ำในคุณลักษณะของโหนดเพื่อเปลี่ยนพวกเขา ฉันอยากจะทำ: for _, attr := range n.Attr { if attr.Key == "href" { attr.Val = "something" } } แต่เนื่องจากattrไม่ใช่ตัวชี้สิ่งนี้จะไม่ทำงานและฉันต้องทำ: for i, attr := range n.Attr { if attr.Key == "href" { n.Attr[i].Val = …
153 arrays  for-loop  go 

13
การติดตั้งล้มเหลวโดยมีข้อผิดพลาด: ไม่มีตำแหน่งการติดตั้งสำหรับไดเรกทอรี xxx นอก GOPATH
~/src/go-statsd-client> echo $GOPATH /Users/me/gopath ~/src/go-statsd-client> echo $GOROOT /usr/local/Cellar/go/1.1.1\ ~/src/go-statsd-client> go install go install: no install location for directory /Users/me/src/go-statsd-client outside GOPATH ไม่ว่าโครงสร้างโครงการจะล้มเหลวด้วยข้อความเดียวกัน สร้างงานได้อย่างสมบูรณ์แบบ นี่คือของฉัน go env GOARCH="amd64" GOBIN="" GOCHAR="6" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin" GOPATH="/Users/me/gopath" GORACE="" GOROOT="/usr/local/Cellar/go/1.1.1" GOTOOLDIR="/usr/local/Cellar/go/1.1.1/pkg/tool/darwin_amd64" CC="gcc" GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-common" CGO_ENABLED="1" นี่คือบน Mac OSX Mountain Lion …
152 macos  go 


9
วิธีการแยกสตริงและกำหนดให้กับตัวแปร
ใน Python มันเป็นไปได้ที่จะแบ่งสตริงและกำหนดให้กับตัวแปร: ip, port = '127.0.0.1:5432'.split(':') แต่ใน Go มันดูเหมือนจะไม่ทำงาน: ip, port := strings.Split("127.0.0.1:5432", ":") // assignment count mismatch: 2 = 1 คำถาม:จะแยกสตริงและกำหนดค่าในขั้นตอนเดียวได้อย่างไร
151 string  go  split 

14
ไม่สามารถดาวน์โหลดได้ แต่ไม่ได้ตั้งค่า $ GOPATH
ฉันต้องการติดตั้ง json2csv โดยใช้go get github.com/jehiah/json2csvแต่ฉันได้รับข้อผิดพลาดนี้: package github.com/jehiah/json2csv: cannot download, $GOPATH not set. For more details see: go help go path ความช่วยเหลือเกี่ยวกับวิธีการแก้ไขใน MacOS?
150 macos  installation  go 

4
ฟังก์ชั่นการโทรไปจาก C
ฉันกำลังพยายามสร้างวัตถุแบบสแตติกที่เขียนใน Go to อินเตอร์เฟสด้วยโปรแกรม C (เช่นโมดูลเคอร์เนลหรือบางอย่าง) ฉันได้พบเอกสารเกี่ยวกับการเรียกฟังก์ชั่น C จาก Go แต่ฉันไม่พบวิธีการใช้งานอีกมาก สิ่งที่ฉันพบคือมันเป็นไปได้ แต่ซับซ้อน นี่คือสิ่งที่ฉันพบ: บล็อกโพสต์เกี่ยวกับการโทรกลับระหว่าง C และ Go เอกสาร Cgo โพสต์รายชื่อผู้รับจดหมาย ใครบ้างมีประสบการณ์กับสิ่งนี้หรือไม่? ในระยะสั้นฉันพยายามที่จะสร้างโมดูล PAM ที่เขียนทั้งหมดใน Go

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.