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

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

5
คุณให้บริการไฟล์ html แบบคงที่โดยใช้ go web server ได้อย่างไร?
คุณให้บริการ index.html (หรือไฟล์ HTML แบบคงที่อื่น ๆ ) โดยใช้ go web server ได้อย่างไร ฉันต้องการไฟล์ HTML พื้นฐานแบบคงที่ (เช่นบทความเป็นต้น) ซึ่งฉันสามารถใช้งานได้จากเว็บเซิร์ฟเวอร์ go HTML ควรแก้ไขได้ภายนอกโปรแกรม go เช่นเดียวกับในกรณีที่ใช้เทมเพลต HTML นี่คือเว็บเซิร์ฟเวอร์ของฉันซึ่งโฮสต์เฉพาะข้อความที่เข้ารหัส ("Hello world!") package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello world!") } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":3000", nil) …
91 go 

4
จะไม่จัดโครงสร้างที่ว่างเปล่าให้เป็น JSON ด้วย Go ได้อย่างไร
ฉันมีโครงสร้างดังนี้: type Result struct { Data MyStruct `json:"data,omitempty"` Status string `json:"status,omitempty"` Reason string `json:"reason,omitempty"` } แต่แม้ว่าอินสแตนซ์ของ MyStruct จะว่างเปล่าทั้งหมด (หมายความว่าค่าทั้งหมดเป็นค่าเริ่มต้น) แต่ก็ถูกทำให้เป็นอนุกรมเป็น: "data":{} ฉันรู้ว่าเอกสารการเข้ารหัส / jsonระบุว่าฟิลด์ "ว่าง" คือ: เท็จ, 0, ตัวชี้ศูนย์หรือค่าอินเทอร์เฟซและอาร์เรย์ชิ้นส่วนแผนที่หรือสตริงความยาวศูนย์ แต่ไม่มีการพิจารณาโครงสร้างที่มีค่าว่าง / ค่าเริ่มต้นทั้งหมด ฟิลด์ทั้งหมดจะถูกแท็กด้วยomitemptyแต่จะไม่มีผลใด ๆ ฉันจะทำให้แพคเกจ JSON ไม่แสดงฟิลด์ของฉันที่เป็นโครงสร้างว่างได้อย่างไร
91 json  go 

4
วิธีรับไฟล์อ้างอิงทั้งหมดสำหรับโปรแกรมโดยใช้ Golang
ฉันสร้างโปรแกรมใน golang และหลังจากกรอกโค้ดเสร็จแล้วหากฉันต้องการรันโค้ดนี้บนพีซีหรือ VM เครื่องอื่นก็จะไม่ได้รับไฟล์แพ็คเกจการพึ่งพาทั้งหมด ฉันจะรับไฟล์อ้างอิงทั้งหมดได้อย่างไร
90 go 

5
ในโกลังมีวิธีที่ดีในการหาค่าจากแผนที่หรือไม่?
ถ้าฉันมีแผนที่ m จะมีวิธีที่ดีกว่าในการหาค่า v หรือไม่ package main import ( "fmt" ) func main() { m := make(map[int]string) m[1] = "a" m[2] = "b" m[3] = "c" m[4] = "d" // Can this be done better? v := make([]string, len(m), len(m)) idx := 0 for _, value := range m { …
90 go 

3
ไปทำคำขอ GET และสร้าง Querystring
ฉันค่อนข้างใหม่สำหรับ Go และยังไม่ค่อยเข้าใจทุกอย่าง ในหลายภาษาสมัยใหม่ Node.js, Angular, jQuery, PHP คุณสามารถส่งคำขอ GET พร้อมพารามิเตอร์สตริงการสืบค้นเพิ่มเติมได้ การทำสิ่งนี้ใน Go ไม่ใช่เรื่องง่ายอย่างที่คิดและฉันก็ยังคิดไม่ออกเหมือนกัน ฉันไม่ต้องการที่จะต้องเชื่อมสตริงสำหรับแต่ละคำขอที่ฉันต้องการทำ นี่คือสคริปต์ตัวอย่าง: package main import ( "fmt" "io/ioutil" "net/http" ) func main() { client := &http.Client{} req, _ := http.NewRequest("GET", "http://api.themoviedb.org/3/tv/popular", nil) req.Header.Add("Accept", "application/json") resp, err := client.Do(req) if err != nil { fmt.Println("Errored when sending …
90 http  go 

3
ทำซ้ำผ่านแผนที่โกลัง
ฉันมีแผนที่ประเภท: map[string]interface{} และในที่สุดฉันก็สามารถสร้างสิ่งที่ต้องการ (หลังจาก deserializing จากไฟล์ yml โดยใช้ goyaml) mymap = map[foo:map[first: 1] boo: map[second: 2]] ฉันจะทำซ้ำผ่านแผนที่นี้ได้อย่างไร ฉันลองทำสิ่งต่อไปนี้: for k, v := range mymap{ ... } แต่ฉันได้รับข้อผิดพลาด: cannot range over mymap typechecking loop involving for loop กรุณาช่วย.
89 map  go  loops 

6
วิธีทำ "go get" บนแท็กเฉพาะของที่เก็บ github
ฉันกำลังพยายามรวบรวมฐานข้อมูล InfluxDB (เวอร์ชัน v0.8.8) โดยใช้ go get github.com/influxdb/influxdb แต่สิ่งนี้ดึงสาขาหลักและฉันต้องการv0.8.8แท็ก ฉันพยายามทำแล้ว go get github.com/influxdb/influxdb/releases/tag/v0.8.8แต่ล้มเหลวโดยบอกว่าไม่พบ ฉันยังพยายามที่จะทำประจำgo getสาขาหลักแล้วด้วยตนเองการตรวจสอบจากแท็กที่ใช้gitในGOPATH/src/github...เพื่อที่จะตั้งรุ่น corret ปัญหาในการใช้แนวทางสุดท้ายคือเมื่อฉันพยายามดึงการอ้างอิงโดยgo get -u -f ./...พยายามค้นหาในสาขาหลักและบางส่วนไม่มีอยู่ในสาขาหลัก ... TL; DR : ดำเนินการgo getบนแท็ก github เฉพาะและดึงการอ้างอิงที่ถูกต้อง
89 git  go  github 

7
วิธีการคอมไพล์โปรแกรม Go ประกอบด้วยไฟล์หลาย ๆ ไฟล์?
ฉันมีโปรแกรมขนาดเล็กที่ประกอบด้วยไฟล์สามไฟล์ซึ่งทั้งหมดอยู่ในแพ็คเกจเดียวกัน (หลัก) แต่เมื่อฉันทำ "go build main.go" การสร้างไม่สำเร็จ เมื่อเป็นเพียงไฟล์เดียว (main.go) ทุกอย่างทำงานได้ดี ตอนนี้ฉันใช้ความพยายามในการแยกโค้ดดูเหมือนว่าคอมไพเลอร์ไม่สามารถค้นหาสิ่งที่นำออกจาก main.go และใส่ลงในไฟล์อื่น ๆ อีกสองไฟล์นี้ (ซึ่งอยู่ในไดเร็กทอรีเดียวกับ main.go) . ซึ่งส่งผลให้เกิดข้อผิดพลาด "ไม่ได้กำหนด" ประเภท " จะคอมไพล์โปรแกรมที่ประกอบด้วยไฟล์หลาย ๆ ไฟล์ได้อย่างไร?


3
ฉันจะส่งสไลซ์เป็นอินพุตตัวแปรได้อย่างไร
func more(... t)ฉันมีฟังก์ชั่น ...ฉันสงสัยว่าถ้ามันเป็นไปได้ที่จะใช้ชิ้นเพื่อเติมรายชื่อของการขัดแย้ง ฉันกำลังพยายามแก้โปรแกรมต่อไปนี้ โดยทั่วไปจะเลียนแบบเชลล์ปกติซึ่งรับคำสั่งเป็นสตริง ฟังก์ชันคำสั่งต้องการ "รายการ" ของอาร์กิวเมนต์และฉันไม่เห็นว่าจะแปลงสตริงเป็นรายการดังกล่าวได้อย่างไร import "os/exec" import "strings" func main(){ plainCommand := "echo hello world" sliceA := strings.Fields(plainCommand) cmd := exec.Command(sliceA) }
89 go 

6
จะเข้าถึงอาร์กิวเมนต์บรรทัดคำสั่งที่ส่งไปยังโปรแกรม Go ได้อย่างไร?
ฉันจะเข้าถึงอาร์กิวเมนต์บรรทัดคำสั่งใน Go ได้อย่างไร mainพวกเขาไม่ได้ผ่านอาร์กิวเมนต์ไปที่ โปรแกรมที่สมบูรณ์อาจสร้างขึ้นโดยการเชื่อมโยงหลายแพ็คเกจต้องมีหนึ่งแพ็คเกจที่เรียกว่า main พร้อมด้วยฟังก์ชัน func main() { ... } กำหนด ฟังก์ชัน main.main () ไม่มีอาร์กิวเมนต์และไม่ส่งคืนค่า
89 go 

2
วิธีการแบ่งส่วนใน Go
ฉันกำลังพยายามแบ่งส่วนง่ายๆใน Go fmt.Println(3/10) สิ่งนี้จะพิมพ์ 0 แทนที่จะเป็น 0.3 นี่เป็นเรื่องแปลก ใครช่วยบอกเหตุผลที่อยู่เบื้องหลังเรื่องนี้ได้ไหม ฉันต้องการดำเนินการทางคณิตศาสตร์ที่แตกต่างกันใน Go ขอบคุณ

1
อะไรคือความแตกต่างหลักระหว่าง 'gc' และ 'gccgo'
อะไรคือความแตกต่างหลักระหว่างคอมไพเลอร์ Go ยอดนิยมสองตัวคือ 'gc' และ 'gccgo' สร้างประสิทธิภาพ? ประสิทธิภาพรันไทม์? ตัวเลือกบรรทัดคำสั่ง? ใบอนุญาต? ฉันไม่ได้มองหาความคิดเห็นว่าข้อใดดีที่สุดเป็นเพียงภาพรวมพื้นฐานของความแตกต่างดังนั้นฉันจึงสามารถตัดสินใจได้ว่าสิ่งใดดีที่สุดสำหรับความต้องการ
89 go  gccgo 

4
สร้าง io.Reader จากไฟล์ในเครื่อง
ฉันต้องการเปิดไฟล์ในเครื่องและส่งคืนไฟล์io.Reader. เหตุผลก็คือฉันต้องป้อนไฟล์io.Readerไปยังห้องสมุดที่ฉันใช้เช่น: func read(r io.Reader) (results []string) { }
89 go 

7
ต่อท้ายไฟล์ใน Go
ดังนั้นฉันสามารถอ่านจากไฟล์ในเครื่องได้ดังนี้: data, error := ioutil.ReadFile(name) และฉันสามารถเขียนลงในไฟล์ภายในเครื่องได้ ioutil.WriteFile(filename, content, permission) แต่ฉันจะต่อท้ายไฟล์ได้อย่างไร? มีวิธีการในตัวหรือไม่?
88 file-io  go 

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