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

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

10
จะตรวจสอบว่าแผนที่มีรหัสใน Go ได้อย่างไร?
ฉันรู้ว่าฉันสามารถทำซ้ำแผนที่mโดย for k, v := range m { ... } และมองหากุญแจ แต่มีวิธีที่มีประสิทธิภาพมากกว่าในการทดสอบการมีอยู่ของกุญแจในแผนที่หรือไม่? ฉันไม่สามารถหาคำตอบได้ในส่วนภาษาสเปค
761 dictionary  go  go-map 

18
วิธีการเชื่อมสตริงอย่างมีประสิทธิภาพในระหว่างการเดินทาง
ใน Go stringเป็นชนิดดั้งเดิมซึ่งหมายความว่ามันเป็นแบบอ่านอย่างเดียวและการจัดการทุกอย่างจะสร้างสตริงใหม่ ดังนั้นหากฉันต้องการเชื่อมสตริงหลาย ๆ ครั้งโดยไม่ทราบความยาวของสตริงผลลัพธ์สิ่งที่ดีที่สุดในการทำคืออะไร วิธีที่ไร้เดียงสาจะเป็น: s := "" for i := 0; i < 1000; i++ { s += getShortStringFromSomewhere() } return s แต่ดูเหมือนจะไม่ได้มีประสิทธิภาพมาก



7
วิธีการแสดงความเป็นตัวตนของ Enums ใน Go คืออะไร?
ฉันพยายามที่จะเป็นตัวแทนของโครโมโซมง่ายซึ่งประกอบด้วยฐาน N {A, C, T, G}ซึ่งแต่ละเพียงสามารถเป็นหนึ่งใน ฉันต้องการทำให้เป็นข้อ จำกัด ด้วย enum อย่างเป็นทางการ แต่ฉันสงสัยว่าการเลียนแบบ enum เป็นวิธีที่งี่เง่าที่สุดใน Go
522 enums  go  genetics 

14
วิธีการแปลงอาร์เรย์ไบต์สิ้นสุดลงเป็นศูนย์เพื่อสตริง?
ฉันต้องอ่าน[100]byteเพื่อถ่ายโอนstringข้อมูลจำนวนมาก เนื่องจากไม่ใช่strings ทั้งหมดที่มีความยาว 100 อักขระอย่างแม่นยำส่วนที่เหลือของbyte arrayเบาะนั้นจะเต็มไปด้วย0s ถ้าฉันแปลง[100]byteเป็นstringโดย: string(byteArray[:])tailing 0s จะแสดงเป็น^@^@s ใน C stringจะสิ้นสุดลง0ดังนั้นฉันสงสัยว่าอะไรคือวิธีที่ดีที่สุดในการแปลงbyte arrayเป็นstring Golang
502 go 

9
วิธีการแปลงค่า int เป็นสตริงใน Go?
i := 123 s := string(i) s คือ 'E' แต่สิ่งที่ฉันต้องการคือ "123" กรุณาบอกฉันว่าฉันจะได้รับ "123" และใน Java ฉันสามารถทำได้ด้วยวิธีนี้: String s = "ab" + "c" // s is "abc" ฉันจะconcatสองสายใน Go ได้อย่างไร?
486 string  go  int  converters 

7
ต่อสองชิ้นเข้าด้วยกันใน Go
ฉันพยายามที่จะรวมชิ้นและชิ้น[1, 2] [3, 4]ฉันจะทำสิ่งนี้ได้อย่างไรในโกะ? ฉันเหนื่อย: append([]int{1,2}, []int{3,4}) แต่ได้: cannot use []int literal (type []int) as type int in append อย่างไรก็ตามเอกสารประกอบที่ดูเหมือนจะบ่งบอกว่าเป็นไปได้สิ่งที่ฉันหายไป? slice = append(slice, anotherSlice...)

12
พารามิเตอร์เพิ่มเติมใน Go?
สามารถมีพารามิเตอร์เสริมได้หรือไม่ หรือฉันสามารถกำหนดฟังก์ชั่นสองอย่างที่มีชื่อเดียวกันและจำนวนอาร์กิวเมนต์ต่างกันได้หรือไม่
464 go  overloading 

10
จะตรวจสอบว่าไฟล์นั้นมีอยู่ใน Go ได้อย่างไร?
ไลบรารี่มาตรฐานของ Go ไม่มีฟังก์ชั่นที่ตั้งใจเพียงเพื่อตรวจสอบว่ามีไฟล์อยู่หรือไม่ (เช่น Python os.path.exists) เป็นวิธีสำนวนที่จะทำอะไร?

3
แท็กใน Go มีประโยชน์อะไรบ้าง?
ในGo Language Specificationจะกล่าวถึงภาพรวมโดยย่อของแท็ก: การประกาศฟิลด์อาจตามด้วยแท็กตัวอักษรของสตริงซึ่งเป็นคุณสมบัติสำหรับฟิลด์ทั้งหมดในการประกาศฟิลด์ที่สอดคล้องกัน แท็กนั้นสามารถมองเห็นได้ผ่านอินเทอร์เฟซการสะท้อน แต่ไม่สนใจ // A struct corresponding to the TimeStamp protocol buffer. // The tag strings define the protocol buffer field numbers. struct { microsec uint64 "field 1" serverIP6 uint64 "field 2" process string "field 3" } นี่เป็นคำอธิบายสั้น ๆ ของ IMO และฉันสงสัยว่าใครจะให้แท็กเหล่านี้กับฉันได้บ้าง
392 go  reflection  struct 

14
จะค้นหาประเภทของวัตถุใน Go ได้อย่างไร?
ฉันจะค้นหาประเภทของวัตถุใน Go ได้อย่างไร ใน Python ฉันใช้typeofเพื่อดึงข้อมูลประเภทของวัตถุ ในทำนองเดียวกันใน Go มีวิธีดำเนินการเหมือนกันหรือไม่ นี่คือคอนเทนเนอร์ที่ฉันกำลังวนซ้ำ: for e := dlist.Front(); e != nil; e = e.Next() { lines := e.Value fmt.Printf(reflect.TypeOf(lines)) } ฉันไม่สามารถรับชนิดของวัตถุในกรณีนี้ซึ่งเป็นอาร์เรย์ของสตริง
387 go  go-reflect 

5
จัดรูปแบบสตริง Go โดยไม่พิมพ์หรือไม่
มีวิธีง่ายๆในการจัดรูปแบบสตริงใน Go โดยไม่ต้องพิมพ์สตริงหรือไม่? ที่ฉันสามารถทำได้: bar := "bar" fmt.Printf("foo: %s", bar) แต่ฉันต้องการสตริงที่ฟอร์แมทที่ส่งคืนแทนที่จะพิมพ์เพื่อให้ฉันสามารถจัดการกับมันต่อไป ฉันสามารถทำสิ่งที่ชอบ: s := "foo: " + bar แต่สิ่งนี้กลายเป็นเรื่องยากที่จะอ่านเมื่อสตริงรูปแบบซับซ้อนและยุ่งยากเมื่อส่วนหนึ่งหรือหลายส่วนไม่ใช่สตริงและต้องถูกแปลงก่อนเช่น i := 25 s := "foo: " + strconv.Itoa(i) มีวิธีที่ง่ายกว่านี้หรือไม่?



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