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

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

7
วิธีรันกรณีทดสอบในไฟล์ที่ระบุ?
กรณีทดสอบแพคเกจของฉันกระจัดกระจายในหลายไฟล์ถ้าฉันเรียกใช้go test <package_name>มันรันกรณีทดสอบทั้งหมดในแพ็คเกจ ไม่จำเป็นต้องเรียกใช้ทั้งหมด มีวิธีระบุไฟล์ที่go testจะใช้เพื่อให้รันเฉพาะกรณีทดสอบที่กำหนดในไฟล์หรือไม่
205 go 

7
ทำไมฉันต้องสร้าง () หรือใหม่ ()
เอกสารแนะนำให้ใช้หลายย่อหน้าเพื่ออธิบายความแตกต่างระหว่างnew()และmake()แต่ในทางปฏิบัติคุณสามารถสร้างวัตถุภายในขอบเขตภายในและส่งคืนได้ ทำไมคุณถึงใช้ผู้จัดสรรคู่
203 go 

1
การถอดรหัส JSON โดยใช้ json.Unmarshal vs json.NewDecoder.Decode
ฉันกำลังพัฒนาไคลเอนต์ API ที่ฉันต้องการเข้ารหัส JSON payload ตามคำขอและถอดรหัสเนื้อหาของ JSON จากการตอบสนอง ฉันอ่านซอร์สโค้ดจากหลาย ๆ ไลบรารีและจากสิ่งที่ฉันเห็นฉันมีความเป็นไปได้สองอย่างในการเข้ารหัสและถอดรหัสสตริง JSON ใช้json.Unmarshalผ่านสตริงการตอบสนองทั้งหมด data, err := ioutil.ReadAll(resp.Body) if err == nil && data != nil { err = json.Unmarshal(data, value) } หรือใช้ json.NewDecoder.Decode err = json.NewDecoder(resp.Body).Decode(value) ในกรณีของฉันเมื่อจัดการกับการตอบกลับ HTTP ที่ใช้งานio.Readerดูเหมือนว่ารุ่นที่สองจะต้องใช้รหัสน้อยลง แต่เนื่องจากฉันได้เห็นทั้งคู่ฉันสงสัยว่ามีการตั้งค่าใด ๆ ว่าฉันควรใช้โซลูชันมากกว่าที่อื่นหรือไม่ ยิ่งกว่านั้นคำตอบที่ได้รับการยอมรับจากคำถามนี้บอกว่า โดยใช้แทนjson.Decoderjson.Unmarshal แต่มันไม่ได้พูดถึงเหตุผล ฉันควรหลีกเลี่ยงการใช้งานจริงjson.Unmarshalหรือ
203 json  go 

3
X ไม่ได้ใช้ Y (…วิธีมีตัวรับสัญญาณตัวชี้) [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ มีคำถาม & คำตอบอยู่มากมายในเรื่อง " X ไม่ได้ใช้วิธี Y (... มีตัวรับสัญญาณตัวชี้) " แต่สำหรับฉันพวกเขาดูเหมือนจะพูดถึงสิ่งต่าง ๆ และไม่ได้ใช้กับกรณีเฉพาะของฉัน ดังนั้นแทนที่จะทำคำถามที่เฉพาะเจาะจงฉันทำให้มันกว้างและเป็นนามธรรม - ดูเหมือนว่ามีหลายกรณีที่สามารถทำให้เกิดข้อผิดพลาดนี้ได้ใครบางคนสรุปได้ไหม เช่นวิธีการหลีกเลี่ยงปัญหาและถ้ามันเกิดขึ้นสิ่งที่เป็นไปได้คืออะไร? ขอบคุณ.

12
ไปให้ REPL หรือไม่
สภาพแวดล้อมแบบโต้ตอบมีประโยชน์มากสำหรับโปรแกรมเมอร์ อย่างไรก็ตามดูเหมือนว่า Go จะไม่ได้ให้บริการ ความเข้าใจของฉันถูกต้องหรือไม่

21
ยืนยันความชั่วร้ายหรือไม่ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา Goผู้สร้างภาษาเขียน : ไปไม่ได้ให้การยืนยัน พวกเขาสะดวกสบายอย่างปฏิเสธไม่ได้ แต่ประสบการณ์ของเราคือผู้เขียนโปรแกรมใช้พวกเขาเป็นผู้ค้ำยันเพื่อหลีกเลี่ยงการคิดเกี่ยวกับการจัดการข้อผิดพลาดและการรายงานที่เหมาะสม การจัดการข้อผิดพลาดที่เหมาะสมหมายความว่าเซิร์ฟเวอร์ดำเนินการต่อหลังจากข้อผิดพลาดที่ไม่ร้ายแรงแทนที่จะล้มเหลว การรายงานข้อผิดพลาดที่เหมาะสมหมายความว่าข้อผิดพลาดนั้นเกิดขึ้นโดยตรงและตรงประเด็นช่วยให้โปรแกรมเมอร์ไม่สามารถตีความการติดตามข้อผิดพลาดจำนวนมากได้ ข้อผิดพลาดที่แม่นยำมีความสำคัญอย่างยิ่งเมื่อโปรแกรมเมอร์ที่เห็นข้อผิดพลาดไม่คุ้นเคยกับรหัส ความคิดเห็นของคุณเกี่ยวกับเรื่องนี้คืออะไร?
199 c++  c  error-handling  go  assert 

5
รายการไดเรกทอรีใน Go
ฉันพยายามหาวิธีแสดงรายการไฟล์และโฟลเดอร์ในไดเรกทอรีเดียวใน Go ฉันเจอfilepath.Walkแล้ว แต่มันเข้าสู่ไดเรกทอรีย่อยโดยอัตโนมัติซึ่งฉันไม่ต้องการ การค้นหาอื่น ๆ ทั้งหมดของฉันไม่ได้ทำให้ดีขึ้น ฉันแน่ใจว่ามีฟังก์ชั่นนี้อยู่ แต่หาได้ยากจริงๆ แจ้งให้เราทราบหากใครรู้ว่าฉันควรมองที่ไหน ขอบคุณ
198 go 

6
พิมพ์การแปลงส่วนของอินเทอร์เฟซ
ฉันอยากรู้ว่าทำไมไปโดยปริยายกวนแปลง[]Tไป[]interface{}เมื่อมันโดยปริยายจะแปลงไปT interface{}มีบางอย่างที่ไม่สำคัญกับการแปลงนี้ที่ฉันขาดไปหรือไม่? ตัวอย่าง: func foo([]interface{}) { /* do something */ } func main() { var a []string = []string{"hello", "world"} foo(a) } go build บ่น ไม่สามารถใช้สตริง (ประเภท []) เป็นประเภท [] อินเตอร์เฟส {} ในอาร์กิวเมนต์ของฟังก์ชัน และถ้าฉันพยายามทำมันอย่างชัดเจนสิ่งเดียวกัน: b := []interface{}(a)บ่น ไม่สามารถแปลงสตริง (พิมพ์ []) เป็นพิมพ์ [] อินเตอร์เฟส {} ดังนั้นทุกครั้งที่ฉันจำเป็นต้องทำการแปลงนี้ (ซึ่งดูเหมือนจะเกิดขึ้นมาก) ฉันได้ทำสิ่งนี้: b = make([]interface{}, …

6
แอปพลิเคชันสร้างเวอร์ชันอัตโนมัติ
เป็นไปได้ไหมที่จะเพิ่มหมายเลขรุ่นรองโดยอัตโนมัติทุกครั้งที่มีการรวบรวมแอพ ฉันต้องการตั้งหมายเลขเวอร์ชันในโปรแกรมของฉันโดยมีส่วน autoincrementing อยู่: $ myapp -version MyApp version 0.5.132 เป็น 0.5 หมายเลขรุ่นที่ฉันตั้งไว้และ 132 ค่าที่เพิ่มขึ้นโดยอัตโนมัติในแต่ละครั้งที่รวบรวมไบนารี เป็นไปได้ใน Go?
193 go 

11
ฉันจะพิมพ์ JSON โดยใช้ Go ได้อย่างไร
ไม่มีใครรู้วิธีง่ายๆในการพิมพ์เอาต์พุต JSON แบบสวยใน Go? หุ้นhttp://golang.org/pkg/encoding/json/แพคเกจไม่ได้ดูเหมือนจะรวมฟังก์ชันการทำงานสำหรับการนี้ (แก้ไข: มันไม่ดูคำตอบที่ได้รับการยอมรับ) และ Google Quick ไม่ได้เปิดอะไรที่เห็นได้ชัด ใช้ฉันกำลังมองหามีทั้งพิมพ์สวยผลลัพธ์json.Marshalและเพียงแค่การจัดรูปแบบสตริงที่เต็มไปด้วย JSON จากที่ใดก็ได้ดังนั้นจึงง่ายต่อการอ่านเพื่อวัตถุประสงค์ในการแก้ปัญหา
191 json  go  pretty-print 

7
Go อัปเดตแพ็คเกจของบุคคลที่สามได้อย่างไร
กำลังมองหาแพคเกจ golang ที่เติบโตและปรับปรุงอย่างแข็งขันฉันสงสัยว่าปัญหาของรุ่นแพ็คเกจจะได้รับการแก้ไขอย่างไร ฉันเห็นว่าวิธีหนึ่งคือการจัดเก็บแพคเกจของบุคคลที่สามไว้ในโฟลเดอร์โครงการ แต่ถ้าฉันติดตั้งด้วยgo getล่ะ
189 go 

7
คาถาคืออะไร?
คืออะไรruneใน Go? ฉันได้รับ googling แต่ golang เพียงกล่าวว่าในหนึ่งบรรทัด: เป็นนามแฝงสำหรับruneint32 แต่ทำไมจำนวนเต็มมาใช้รอบ ๆ เหมือนกรณีการแลกเปลี่ยน? ต่อไปนี้เป็นฟังก์ชั่นการแลกเปลี่ยน ทั้งหมดคืออะไร<=และ-? และทำไมไม่มีswitchข้อโต้แย้งใด ๆ ? &&ควรหมายถึงและแต่คือr <= 'z'อะไร func SwapRune(r rune) rune { switch { case 'a' <= r && r <= 'z': return r - 'a' + 'A' case 'A' <= r && r <= 'Z': return r …
188 go  rune 

7
ผู้คนจัดการการพิสูจน์ตัวตนใน Go อย่างไร [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดเมื่อเดือนที่แล้ว ปรับปรุงคำถามนี้ สำหรับการสร้าง RESTful APIs และแอป Front-end ใน Go คุณจะจัดการการรับรองความถูกต้องอย่างไร คุณใช้ห้องสมุดหรือเทคนิคเฉพาะหรือไม่? ฉันประหลาดใจที่พบการสนทนาเล็กน้อยเกี่ยวกับเรื่องนี้ ฉันจำคำตอบดังต่อไปนี้และพยายามหลีกเลี่ยงการพัฒนาการใช้งานของฉัน: แบบฟอร์มการรับรองความถูกต้องใน ASP.Net ทุกคนเขียนรหัสโซลูชันของตนเองแยกกันหรือไม่
187 authentication  go 

7
ไปรับผลลัพธ์ในข้อผิดพลาด 'แจ้งให้ปิดการใช้งาน terminal' สำหรับ repo ส่วนตัว Github
ฉันสร้างตัวอย่าง repo ส่วนตัว / myprivaterepo ส่วนตัวโดยใช้ Github UI จากเบราว์เซอร์ของฉัน จากนั้นฉันไปที่ไดเรกทอรี go (บนเดสก์ท็อป) และโคลน: $ cd $GOPATH $ go get github.com/examplesite/myprivaterepo จนถึงตอนนี้ดีมาก สร้างไฟล์ scheduler.go เพิ่มไปที่ repo และผลักดัน $ vim scheduler.go $ git add scheduler.go $ git commit $ git push ตกลงทุกคน แต่เมื่อฉันไปที่แล็ปท็อปที่สะอาดและพยายามโคลน repo ฉันได้รับข้อผิดพลาด: # Now on laptop, which doesn't yet …
187 git  go 

3
ฉันสามารถแสดงรายการแพ็คเกจ Go มาตรฐานทั้งหมดได้หรือไม่
จะมีวิธีการในการไปที่รายการทั้งหมดมาตรฐาน / ตัวในแพคเกจ (เช่นแพคเกจที่มาติดตั้งพร้อมกับการติดตั้งไป)? ฉันมีรายการแพ็คเกจและฉันต้องการทราบว่าแพ็คเกจใดเป็นมาตรฐาน
186 go  go-packages 

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