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

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

4
ข้อตกลงสำหรับชื่อไฟล์ใน Go คืออะไร?
ฉันพบข้อตกลงในการตั้งชื่อแพ็คเกจใน Go: ไม่มีขีดล่างระหว่างคำตัวพิมพ์เล็กทุกคำ หลักการนี้ใช้กับชื่อไฟล์ด้วยหรือไม่? คุณใส่โครงสร้างเดียวในไฟล์เดียวเหมือนกับที่คุณทำกับคลาส java แล้วตั้งชื่อไฟล์ตามโครงสร้างหรือไม่ ปัจจุบันถ้าฉันมี Struct WebServer ฉันจะใส่ไว้ในไฟล์ web_server.go

5
ความแตกต่างระหว่าง fmt.Println () และ println () ใน Go
ดังภาพประกอบด้านล่างทั้งสองfmt.Println()และprintln()ให้ผลลัพธ์เดียวกันใน Go:Hello world! แต่: พวกเขาแตกต่างจากกันอย่างไร? ตัวอย่างข้อมูล 1 โดยใช้fmtแพ็คเกจ package main import ( "fmt" ) func main() { fmt.Println("Hello world!") } Snippet 2 ไม่มีfmtแพ็คเกจ package main func main() { println("Hello world!") }
117 go  println 

3
ไปที่หลักการตั้งชื่อสำหรับ const
ฉันพยายามตรวจสอบว่ามีหลักการตั้งชื่อสำหรับชื่อconstใน Golang หรือไม่ โดยส่วนตัวแล้วฉันมักจะทำตามสไตล์ C และเขียนเป็นตัวพิมพ์ใหญ่ แต่ฉันไม่พบสิ่งใดในหน้านี้http://golang.org/doc/effective_go.htmlซึ่งดูเหมือนว่าจะมีการกำหนดรูปแบบการตั้งชื่อสำหรับภาษานั้น ๆ

3
แยกสตริงในช่องว่างใน Go?
ระบุสตริงอินพุตเช่น" word1 word2 word3 word4 "อะไรคือวิธีที่ดีที่สุดในการแบ่งสิ่งนี้เป็นอาร์เรย์ของสตริงใน Go? โปรดทราบว่าจะมีใด ๆจำนวนช่องว่างหรืออักขระ Unicode ระยะห่างระหว่างแต่ละคำ ใน Java ฉันจะใช้someString.trim().split("\\s+"). (หมายเหตุ: สตริงการแยกที่ซ้ำกันที่เป็นไปได้โดยใช้นิพจน์ทั่วไปใน Goไม่ได้ให้คำตอบที่มีคุณภาพดีใด ๆ โปรดให้ตัวอย่างจริงไม่ใช่แค่ลิงก์ไปยังการอ้างอิงregexpหรือstringsแพ็กเกจ)
117 regex  go 

2
“ <type> เป็นตัวชี้ไปที่อินเทอร์เฟซไม่ใช่อินเทอร์เฟซ” เกิดความสับสน
เรียนเพื่อนนักพัฒนา ฉันมีปัญหานี้ซึ่งดูเหมือนจะแปลกสำหรับฉัน ดูตัวอย่างโค้ดนี้: package coreinterfaces type FilterInterface interface { Filter(s *string) bool } type FieldFilter struct { Key string Val string } func (ff *FieldFilter) Filter(s *string) bool { // Some code } type FilterMapInterface interface { AddFilter(f *FilterInterface) uuid.UUID RemoveFilter(i uuid.UUID) GetFilterByID(i uuid.UUID) *FilterInterface } type FilterMap struct { …
117 pointers  go  interface 

5
วิธีฟัง N ช่อง? (คำสั่งเลือกแบบไดนามิก)
เพื่อเริ่มต้นการวนซ้ำที่ไม่มีที่สิ้นสุดของการดำเนินการสอง goroutines ฉันสามารถใช้รหัสด้านล่าง: หลังจากได้รับข้อความแล้วมันจะเริ่ม goroutine ใหม่และดำเนินต่อไปตลอดกาล c1 := make(chan string) c2 := make(chan string) go DoStuff(c1, 5) go DoStuff(c2, 2) for ; true; { select { case msg1 := &lt;-c1: fmt.Println("received ", msg1) go DoStuff(c1, 1) case msg2 := &lt;-c2: fmt.Println("received ", msg2) go DoStuff(c2, 9) } } ตอนนี้ฉันต้องการมีพฤติกรรมเหมือนกันสำหรับ N …
116 go 

2
ฉันจะทำลิเทอรัล * int64 ใน Go ได้อย่างไร
ฉันมีประเภทโครงสร้างที่มี*int64ฟิลด์ type SomeType struct { SomeField *int64 } เมื่อถึงจุดหนึ่งในรหัสของฉันฉันต้องการประกาศตัวอักษรของสิ่งนี้ (เช่นเมื่อฉันรู้ว่าค่าควรเป็น 0 หรือชี้ไปที่ 0 คุณก็รู้ว่าฉันหมายถึงอะไร) instance := SomeType{ SomeField: &amp;0, } ... ยกเว้นไม่ได้ผล ./main.go:xx: cannot use &amp;0 (type *int) as type *int64 in field value ก็เลยลองทำตามนี้ instance := SomeType{ SomeField: &amp;int64(0), } ... แต่ก็ไม่ได้ผลเช่นกัน ./main.go:xx: cannot take the address of int64(0) …
116 pointers  go  struct  literals 

4
บังคับให้ทดสอบซ้ำหรือปิดใช้งานการทดสอบแคช
ปัญหา: เมื่อฉันทำการทดสอบ go เดียวกันสองครั้งการรันครั้งที่สองจะไม่เสร็จสิ้นเลย ผลลัพธ์คือผลลัพธ์ที่แคชไว้จากการรันครั้งแรก PASS ok tester/apitests (cached) ลิงค์ ฉันตรวจสอบhttps://golang.org/cmd/go/#hdr-Testing_flagsแล้วแต่ไม่มีค่าสถานะ cli สำหรับจุดประสงค์นั้น คำถาม: มีความเป็นไปได้หรือไม่ที่จะบังคับให้ go test รันการทดสอบเสมอและไม่ให้แคชผลการทดสอบ
116 testing  go 

7
การแยกสตริงย่อยใน Go
ฉันพยายามอ่านทั้งบรรทัดจากคอนโซล (รวมถึงช่องว่าง) จากนั้นประมวลผล เมื่อใช้ bufio.ReadString อักขระขึ้นบรรทัดใหม่จะถูกอ่านพร้อมกับอินพุตดังนั้นฉันจึงคิดรหัสต่อไปนี้เพื่อตัดแต่งอักขระขึ้นบรรทัดใหม่: input,_:=src.ReadString('\n') inputFmt:=input[0:len(input)-2]+"" //Need to manually add end of string มีวิธีสำนวนมากกว่านี้ไหม? นั่นคือมีไลบรารีที่ดูแลไบต์ว่างตอนจบเมื่อแยกสตริงย่อยให้คุณหรือไม่? (ใช่ฉันรู้ว่ามีวิธีการอ่านบรรทัดโดยไม่ต้องขึ้นบรรทัดใหม่ในgo readline -&gt; stringแต่ฉันกำลังมองหาการจัดการสตริงที่สวยงามมากกว่า)
115 go  substring 

3
จะแปลงอินเทอร์เฟซ {} เป็นสตริงได้อย่างไร
ฉันใช้docoptเพื่อแยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่ง วิธีนี้ใช้งานได้และส่งผลให้เกิดแผนที่เช่น map[&lt;host&gt;:www.google.de &lt;port&gt;:80 --help:false --version:false] ตอนนี้ฉันต้องการเชื่อมต่อค่าhostและportค่าเข้ากับสตริงโดยมีโคลอนอยู่ระหว่างค่าทั้งสอง โดยทั่วไปบางสิ่งเช่น: host := arguments["&lt;host&gt;"] + ":" + arguments["&lt;port&gt;"] ขออภัยไม่ได้ผลเนื่องจากฉันได้รับข้อความแสดงข้อผิดพลาด: การดำเนินการที่ไม่ถูกต้อง: อาร์กิวเมนต์ [""] + ":" (อินเทอร์เฟซประเภทที่ไม่ตรงกัน {} และสตริง) เห็นได้ชัดว่าฉันต้องแปลงค่าที่ได้รับจากแผนที่ (ซึ่งเป็นเพียงinterface{}เพื่อให้เป็นอะไรก็ได้) เป็นสตริง ตอนนี้คำถามของฉันคือฉันจะทำอย่างไร?
115 go 

6
Golang: วิธีการเติมตัวเลขด้วยศูนย์เมื่อพิมพ์?
ฉันจะพิมพ์ตัวเลขหรือสร้างสตริงโดยมีช่องว่างภายในเป็นศูนย์เพื่อให้มีความกว้างคงที่ได้อย่างไร ตัวอย่างเช่นถ้าฉันมีจำนวนและฉันต้องการที่จะให้มัน12000012
115 go 

6
ในแพ็กเกจ http ของ Go ฉันจะรับสตริงข้อความค้นหาในคำขอ POST ได้อย่างไร
ฉันใช้httpแพ็คเกจจาก Go เพื่อจัดการกับคำขอ POST ฉันจะเข้าถึงและแยกวิเคราะห์เนื้อหาของสตริงการสืบค้นจากRequestวัตถุได้อย่างไร ฉันไม่พบคำตอบจากเอกสารอย่างเป็นทางการ
114 go  query-string 

11
จะวัดความครอบคลุมของรหัสใน Golang ได้อย่างไร?
มีใครบ้างที่ประสบความสำเร็จในการสร้างความครอบคลุมของรหัสสำหรับการทดสอบหน่วย Go? ฉันไม่พบเครื่องมือสำหรับสิ่งนั้นบนเว็บ

4
วิธีที่เหมาะสมในการจัดวางโครงการ Go [ปิด] คืออะไร
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการเมื่อปีที่แล้ว ปรับปรุงคำถามนี้ ฉันมีโปรเจ็กต์ go ที่เริ่มซับซ้อนมากขึ้นและต้องการจัดวางระบบไฟล์เพื่อลดความเจ็บปวด มีตัวอย่างที่ดีในสิ่งที่สมเหตุสมผลหรือไม่?
113 go  project 

9
จะทำ one-liner if else statement ได้อย่างไร?
ฉันสามารถเขียนคำสั่ง if-else อย่างง่ายพร้อมการกำหนดตัวแปรใน go (golang) เหมือนที่ฉันทำใน php ได้หรือไม่ ตัวอย่างเช่น: $var = ( $a &gt; $b )? $a: $b; ตอนนี้ฉันต้องใช้สิ่งต่อไปนี้: var c int if a &gt; b { c = a } else { c = b } ขออภัยฉันจำชื่อไม่ได้หากคำสั่งควบคุมนี้และฉันไม่พบข้อมูลในไซต์หรือจากการค้นหาโดย Google : /

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