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

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

9
ฟังก์ชัน init () ทำงานเมื่อใด
ฉันพยายามค้นหาคำอธิบายที่แม่นยำเกี่ยวกับสิ่งที่init()ฟังก์ชั่นทำใน Go ฉันอ่านสิ่งที่Effective Goพูด แต่ฉันไม่แน่ใจถ้าฉันเข้าใจอย่างเต็มที่ในสิ่งที่พูด ประโยคที่แน่นอนที่ฉันไม่แน่ใจคือต่อไปนี้: และในที่สุดก็หมายความว่าในที่สุด: init ถูกเรียกหลังจากการประกาศตัวแปรทั้งหมดในแพ็คเกจได้ประเมินค่า initializers ของพวกเขาและสิ่งเหล่านั้นจะได้รับการประเมินหลังจากแพคเกจที่นำเข้าทั้งหมดได้รับการเริ่มต้น อะไรall the variable declarations in the package have evaluated their initializersหมายถึง? หมายความว่าหากคุณประกาศตัวแปร "ทั่วโลก" ในแพ็คเกจและไฟล์ของ init () จะไม่ทำงานจนกว่าจะได้รับการประเมินทั้งหมดและจากนั้นจะเรียกใช้ฟังก์ชัน init ทั้งหมดแล้วตามด้วย main () เมื่อเรียกใช้ไฟล์. main_file_name ฉันยังอ่านหนังสือ Go Mark's Summer ต่อไปนี้: หากแพ็กเกจมีฟังก์ชัน init () หนึ่งรายการหรือมากกว่านั้นจะถูกดำเนินการโดยอัตโนมัติก่อนที่จะเรียกใช้ฟังก์ชัน main () ของแพ็คเกจหลัก ในความเข้าใจของฉันinit()มีความเกี่ยวข้องเฉพาะเมื่อคุณตั้งใจจะรัน main () ใช่ไหม …
356 go  init 

12
อ่านไฟล์ทีละบรรทัดใน Go
ฉันไม่พบfile.ReadLineฟังก์ชันใน Go ฉันสามารถหาวิธีเขียนได้อย่างรวดเร็ว แต่ฉันแค่สงสัยว่าฉันมองอะไรบางอย่างที่นี่ หนึ่งจะอ่านไฟล์ทีละบรรทัดได้อย่างไร
334 string  file  parsing  go  line 

4
ตัวชี้เทียบกับค่าในพารามิเตอร์และค่าส่งคืน
ในการไปมีหลายวิธีในการคืนstructค่าหรือชิ้นส่วนดังกล่าว สำหรับคนที่ฉันเคยเห็น: type MyStruct struct { Val int } func myfunc() MyStruct { return MyStruct{Val: 1} } func myfunc() *MyStruct { return &MyStruct{} } func myfunc(s *MyStruct) { s.Val = 1 } ฉันเข้าใจความแตกต่างระหว่างสิ่งเหล่านี้ ครั้งแรกที่ส่งกลับสำเนาของ struct ตัวชี้ที่สองไปยังค่า struct ที่สร้างขึ้นภายในฟังก์ชั่นที่สามคาดว่าโครงสร้างที่มีอยู่จะถูกส่งผ่านและแทนที่ค่า ฉันเห็นรูปแบบเหล่านี้ทั้งหมดถูกใช้ในบริบทต่าง ๆ ฉันสงสัยว่าแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับสิ่งเหล่านี้คืออะไร คุณจะใช้อันไหน ตัวอย่างเช่นตัวแรกอาจใช้ได้กับโครงสร้างขนาดเล็ก และอันที่สามถ้าคุณต้องการให้หน่วยความจำมีประสิทธิภาพมากเพราะคุณสามารถใช้อินสแตนซ์ struct ระหว่างการโทรได้อย่างง่ายดาย มีวิธีปฏิบัติที่ดีที่สุดสำหรับเมื่อใดที่จะใช้ ในทำนองเดียวกันคำถามเดียวกันเกี่ยวกับชิ้น: func myfunc() …
328 pointers  go 

18
ค่าของ GOPATH และ GOROOT ควรเป็นอย่างไร
ฉันพยายามติดตั้งdoozerเช่นนี้: $ goinstall github.com/ha/doozer ฉันได้รับข้อผิดพลาดเหล่านี้ goinstall: os: go/build: package could not be found locally goinstall: fmt: go/build: package could not be found locally goinstall: io: go/build: package could not be found locally goinstall: reflect: go/build: package could not be found locally goinstall: math: go/build: package could not be found locally …
323 go  gopath 

3
วนซ้ำทุกปุ่มบนแผนที่
มีวิธีรับรายการคีย์ทั้งหมดในแผนที่ภาษา Go หรือไม่? จำนวนองค์ประกอบถูกกำหนดโดยlen()แต่ถ้าฉันมีแผนที่เช่น: m := map[string]string{ "key1":"val1", "key2":"val2" }; ฉันจะทำซ้ำคีย์ทั้งหมดได้อย่างไร
316 loops  dictionary  go 

11
จะสร้างสตริงแบบสุ่มที่มีความยาวคงที่ใน Go ได้อย่างไร
ฉันต้องการสตริงอักขระแบบสุ่มเท่านั้น (ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก) ไม่มีตัวเลขใน Go วิธีที่เร็วและง่ายที่สุดในการทำเช่นนี้คืออะไร?
300 string  random  go 

9
สำนวนที่เป็นไปได้ของผู้ประกอบการที่ประกอบไปด้วยไตรภาคของ C คืออะไร?
ใน C / C ++ (และหลายภาษาของตระกูลนั้น) สำนวนทั่วไปในการประกาศและเริ่มต้นตัวแปรขึ้นอยู่กับเงื่อนไขใช้ตัวดำเนินการเงื่อนไขแบบไตรภาค int index = val > 0 ? val : -val Go ไม่มีตัวดำเนินการตามเงื่อนไข เป็นวิธีสำนวนที่สุดในการใช้ชิ้นส่วนของรหัสเดียวกันข้างต้นคืออะไร? ฉันมาถึงวิธีแก้ปัญหาต่อไปนี้ แต่ดูเหมือนว่าค่อนข้างละเอียด var index int if val > 0 { index = val } else { index = -val } มีอะไรที่ดีกว่านี้ไหม?


5
วิธีการคูณระยะเวลาด้วยจำนวนเต็ม?
ในการทดสอบ goroutines พร้อมกันฉันเพิ่มโฆษณาให้กับฟังก์ชั่นที่จะทำให้มันใช้เวลาสุ่มเพื่อผลตอบแทน (ถึงหนึ่งวินาที) time.Sleep(rand.Int31n(1000) * time.Millisecond) อย่างไรก็ตามเมื่อฉันรวบรวมฉันได้รับข้อผิดพลาดนี้ . \ crawler.go: 49: การดำเนินการไม่ถูกต้อง: rand.Int31n (1000) * time.Millisecond (ไม่ตรงกันประเภท Int32 และ time.Duration) ความคิดใด ๆ ฉันจะคูณระยะเวลาได้อย่างไร
285 go  time 

8
จะอ่าน / เขียนจาก / ถึงไฟล์โดยใช้ Go ได้อย่างไร
ฉันพยายามที่จะเรียนรู้ Go ด้วยตัวเอง แต่ฉันยังคงนิ่งงันในการพยายามอ่านและเขียนไฟล์ธรรมดา ฉันสามารถเข้าใจได้inFile, _ := os.Open(INFILE, 0, 0)แต่จริงๆแล้วการรับเนื้อหาของไฟล์นั้นไม่สมเหตุสมผลเพราะฟังก์ชั่นการอ่านใช้[]byteเป็นพารามิเตอร์ func (file *File) Read(b []byte) (n int, err Error)
284 file  go 

13
วิธีจัดการการกำหนดค่าใน Go [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ฉันใหม่ในการเขียนโปรแกรม Go และฉันสงสัยว่า: วิธีใดที่เหมาะสมในการจัดการพารามิเตอร์การกำหนดค่าสำหรับโปรแกรม Go (ประเภทของสิ่งหนึ่งที่อาจใช้ไฟล์คุณสมบัติหรือไฟล์iniสำหรับในบริบทอื่น ๆ )?

9
ความแตกต่างระหว่าง: = และ = ตัวดำเนินการใน Go
อะไรคือความแตกต่างระหว่างตัวดำเนินการ=และ:=ตัวดำเนินการและกรณีการใช้งานสำหรับพวกเขาคืออะไร พวกเขาทั้งสองดูเหมือนจะเป็นงานที่มอบหมายหรือไม่?
283 go 


11
วิธีการอ่านจากอินพุตมาตรฐานในคอนโซล?
ฉันต้องการอ่านอินพุตมาตรฐานจากบรรทัดคำสั่ง แต่ความพยายามของฉันสิ้นสุดลงด้วยการออกจากโปรแกรมก่อนที่ฉันจะได้รับแจ้งให้ป้อนข้อมูล ฉันกำลังมองหาเทียบเท่าของConsole.ReadLine ()ใน C # นี่คือสิ่งที่ฉันมีในปัจจุบัน: package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(os.Stdin) fmt.Print("Enter text: ") text, _ := reader.ReadString('\n') fmt.Println(text) fmt.Println("Enter text: ") text2 := "" fmt.Scanln(text2) fmt.Println(text2) ln := "" fmt.Sscanln("%v", ln) fmt.Println(ln) }
270 go 


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