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

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

6
ลบองค์ประกอบในชิ้น
func main() { a := []string{"Hello1", "Hello2", "Hello3"} fmt.Println(a) // [Hello1 Hello2 Hello3] a = append(a[:0], a[1:]...) fmt.Println(a) // [Hello2 Hello3] } เคล็ดลับการลบด้วยฟังก์ชันผนวกนี้ทำงานอย่างไร ดูเหมือนว่ามันจะคว้าทุกอย่างไว้ก่อนองค์ประกอบแรก (อาร์เรย์ว่าง) จากนั้นผนวกทุกอย่างหลังจากองค์ประกอบแรก (ตำแหน่งศูนย์) ... (dot dot dot) ทำอะไร
139 go 

5
ไปสร้าง:“ ไม่พบแพ็คเกจ” (แม้ว่าจะตั้งค่า GOPATH ไว้ก็ตาม)
แม้ว่าฉันจะGOPATHตั้งค่าอย่างถูกต้อง แต่ฉันก็ยังไม่สามารถ "go build" หรือ "go run" เพื่อค้นหาแพ็กเกจของตัวเองได้ ผมทำอะไรผิดหรือเปล่า? $ echo $GOROOT /usr/local/go $ echo $GOPATH /home/mitchell/go $ cat ~/main.go package main import "foobar" func main() { } $ cat /home/mitchell/go/src/foobar.go package foobar $ go build main.go main.go:3:8: import "foobar": cannot find package
139 build  go  package 

4
วิธีรับการตอบสนอง JSON จาก http.Get
ฉันพยายามอ่านข้อมูล JSON จากเว็บ แต่โค้ดนั้นส่งคืนผลลัพธ์ว่างเปล่า ฉันไม่แน่ใจว่าฉันทำอะไรผิดที่นี่ package main import "os" import "fmt" import "net/http" import "io/ioutil" import "encoding/json" type Tracks struct { Toptracks []Toptracks_info } type Toptracks_info struct { Track []Track_info Attr []Attr_info } type Track_info struct { Name string Duration string Listeners string Mbid string Url string Streamable []Streamable_info Artist …
137 json  go 

10
golang "ไม่ได้กำหนด" ฟังก์ชันที่ประกาศในไฟล์อื่นหรือไม่
ฉันกำลังพยายามเขียนโปรแกรม go พื้นฐานที่เรียกใช้ฟังก์ชันในไฟล์อื่น แต่เป็นส่วนหนึ่งของแพ็คเกจเดียวกัน อย่างไรก็ตามผลตอบแทน: undefined: NewEmployee นี่คือซอร์สโค้ด: main.go: package main func main() { emp := NewEmployee() } employee.go: package main type Employee struct { name string age int } func NewEmployee() *Employee { p := &Employee{} return p } func PrintEmployee (p *Employee) { return "Hello world!" }
136 go  undefined  func 

3
ไม่อนุญาตให้นำเข้ารอบ
ฉันมีปัญหากับ ไม่อนุญาตให้นำเข้ารอบ ปรากฏขึ้นเมื่อฉันพยายามทดสอบคอนโทรลเลอร์ เป็นผลลัพธ์ที่ฉันมี can't load package: import cycle not allowed package project/controllers/account imports project/controllers/base imports project/components/mux imports project/controllers/account import cycle not allowed package project/controllers/account imports project/controllers/base imports project/components/mux imports project/controllers/account import cycle not allowed package project/controllers/account imports project/controllers/base imports project/components/mux imports project/controllers/routes imports project/controllers/base ใครสามารถบอกฉันวิธีอ่านหรือทำความเข้าใจข้อผิดพลาดนี้ การพึ่งพาผิดตรงไหน?
136 go 

4
การลบคีย์ที่เลือกออกจากแผนที่ภายในวงช่วงระยะปลอดภัยหรือไม่?
จะลบคีย์ที่เลือกออกจากแผนที่ได้อย่างไร? ปลอดภัยไหมที่จะรวมdelete()กับช่วงดังในโค้ดด้านล่าง package main import "fmt" type Info struct { value string } func main() { table := make(map[string]*Info) for i := 0; i < 10; i++ { str := fmt.Sprintf("%v", i) table[str] = &Info{str} } for key, value := range table { fmt.Printf("deleting %v=>%v\n", key, value.value) delete(table, key) } …
136 dictionary  for-loop  go 

2
ศูนย์สำหรับสตริงคืออะไร?
func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key เอกสารระบุว่า: NewKey สร้างคีย์ใหม่ ชนิดต้องไม่ว่างเปล่า คนใดคนหนึ่งหรือทั้งสอง stringID และ intID จะต้องเป็นศูนย์ หากทั้งคู่เป็นศูนย์แสดงว่าคีย์ที่ส่งคืนจะไม่สมบูรณ์ พาเรนต์ต้องเป็นคีย์ที่สมบูรณ์หรือศูนย์ ศูนย์สำหรับสตริงคืออะไร? ฉันพยายาม0และnilและฉันได้ข้อผิดพลาดเช่น: cannot use nil as type string in function argument
133 string  go 


9
ค่าสูงสุดสำหรับประเภท int ใน Go
หนึ่งจะระบุค่าสูงสุดที่แสดงสำหรับunsignedประเภทจำนวนเต็มได้อย่างไร ฉันต้องการทราบวิธีการเริ่มต้นminในลูปด้านล่างที่คำนวณซ้ำ ๆ ความยาวขั้นต่ำและสูงสุดจาก structs บางอย่าง var minLen uint = ??? var maxLen uint = 0 for _, thing := range sliceOfThings { if minLen > thing.n { minLen = thing.n } if maxLen < thing.n { maxLen = thing.n } } if minLen > maxLen { // If there …
132 numbers  go 

5
จะเปรียบเทียบได้อย่างไรว่าโครงสร้างสองชิ้นหรือแผนที่เท่ากันหรือไม่?
ฉันต้องการตรวจสอบว่าโครงสร้างสองส่วนและแผนที่เท่ากันหรือไม่ แต่ฉันพบปัญหากับรหัสต่อไปนี้ ดูความคิดเห็นของฉันที่บรรทัดที่เกี่ยวข้อง package main import ( "fmt" "reflect" ) type T struct { X int Y string Z []int M map[string]int } func main() { t1 := T{ X: 1, Y: "lei", Z: []int{1, 2, 3}, M: map[string]int{ "a": 1, "b": 2, }, } t2 := T{ X: 1, …
132 go  go-reflect 

5
วิธีตรวจสอบว่ามีไฟล์หรือไดเรกทอรีอยู่หรือไม่
ฉันต้องการตรวจสอบการมีอยู่ของไฟล์./conf/app.iniในรหัส Go ของฉัน แต่ฉันไม่สามารถหาวิธีที่ดีในการทำเช่นนั้น ฉันรู้ว่ามีวิธีการของไฟล์ใน Java: public boolean exists()ซึ่งผลตอบแทนจริงถ้าไฟล์หรือไดเรกทอรีที่มีอยู่ แต่สิ่งนี้สามารถทำได้ในโก
131 file  go 


4
golang ทำไมเราไม่มีการกำหนดโครงสร้างข้อมูล [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ฉันกำลังพยายามแก้แบบฝึกหัด "The go programming lanaguage" # 1.4 ซึ่งทำให้ฉันต้องมีชุด ฉันสามารถสร้างประเภทชุดได้ แต่ทำไมไม่มีภาษามาด้วย ไปเพราะมาจาก google ซึ่งฝรั่งก็กำเนิดขึ้นด้วยเหตุใดนักออกแบบภาษาจึงไม่เลือกที่จะเพิ่มการรองรับโครงสร้างข้อมูลพื้นฐาน เหตุใดจึงบังคับให้ผู้ใช้ของคุณสร้างการใช้งานของตนเองสำหรับบางสิ่งที่เรียบง่ายเป็นชุด
131 data-structures  go  set 

5
อะไรคือวิธีที่สั้นที่สุดในการจัดเรียงอาร์เรย์ของโครงสร้างตามชื่อฟิลด์ (ตามอำเภอใจ)
ฉันเพิ่งมีปัญหาที่ฉันมีอาร์เรย์ของโครงสร้างเช่น package main import "log" type Planet struct { Name string `json:"name"` Aphelion float64 `json:"aphelion"` // in million km Perihelion float64 `json:"perihelion"` // in million km Axis int64 `json:"Axis"` // in km Radius float64 `json:"radius"` } func main() { var mars = new(Planet) mars.Name = "Mars" mars.Aphelion = 249.2 mars.Perihelion …
130 sorting  go 

3
วิธีการรวมสตริงเป็นสตริงเดียว?
package main import ( "fmt" "strings" ) func main() { reg := [...]string {"a","b","c"} fmt.Println(strings.Join(reg,",")) } ทำให้ฉันมีข้อผิดพลาด: prog.go: 10: ไม่สามารถใช้ reg (type [3] string) เป็น type [] string ในการโต้แย้ง strings เข้าร่วม มีวิธีที่ตรงกว่า / ดีกว่าการวนซ้ำและเพิ่มลงใน var หรือไม่?
130 go  slice 

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