Запитання з тегом «go»

Go - мова програмування з відкритим кодом. Він має статичний тип, із синтаксисом, який походить від C, додає автоматичне управління пам’яттю, безпеку типу, деякі можливості динамічного набору тексту, додаткові вбудовані типи, такі як масиви змінної довжини (називаються фрагментами) та карти ключових значень, та велика стандартна бібліотека.

4
Як аналізувати пам'ять голангу?
Я написав програму golang, яка використовує 1,2 Гб пам'яті під час виконання. go tool pprof http://10.10.58.118:8601/debug/pprof/heapРезультатом виклику є дамп із використанням лише купи 323,4 МБ. Що з рештою використання пам'яті? Чи є якийсь кращий інструмент для пояснення пам'яті часу виконання golang? Використовуючи gcvisя отримую це: .. і цей профіль форми …

2
Як я можу обробляти http-запити різних методів до / в Go?
Я намагаюся зрозуміти, як найкраще обробляти запити /і лише /в Go, і по-різному обробляти різні методи. Ось найкраще, що я придумав: package main import ( "fmt" "html" "log" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { if r.URL.Path != "/" { http.NotFound(w, r) return } if r.Method …
79 go 

2
Що робить go install?
У документах нічого не сказано про те, що buildпротиinstall робить Я сподівався, що це як make install; тобто він бере зібраний матеріал і розміщує його в остаточному місці ( /usr/local/bin/my_new_toyабо що завгодно), але здається, що він поміщає речіGOROOT/bin Чи можу я сказати піти робити make install- тобто покласти речі в …
79 go 

10
Голанг додає предмет до фрагмента
Чому зріз aзалишається незмінним? Чи append()генерує новий фрагмент? package main import ( "fmt" ) var a = make([]int, 7, 8) func Test(slice []int) { slice = append(slice, 100) fmt.Println(slice) } func main() { for i := 0; i < 7; i++ { a[i] = i } Test(a) fmt.Println(a) } Вихід: …
79 go 

5
Як читати файли та stdout із запущеного контейнера Docker
Як би я запустив програму на моїй хост-машині, щоб читати файли та stdout із запущеного контейнера докера? По суті, я хочу зробити це: docker start containerid ./myapp // This app will *somehow* have access files and stdout generated by the container I just stared. Як би я це зробив? Щоб …
78 logging  go  docker 


5
Правильний спосіб отримання IP-адрес клієнта з http.Request
Який правильний спосіб отримати всі IP-адреси клієнта http.Request? У PHPньому є багато змінних, які я повинен перевірити. Це те саме на Go? Я знайшов: req.RemoteAddr І чи чутливий регістр запиту? наприклад x-forwarded-forте саме, що X-Forwarded-Forі X-FORWARDED-FOR? (від req.Header.Get("X-FORWARDED-FOR"))
78 http  go  ip 

4
Ідіоматичний спосіб зробити твердження про перетворення / тип для кількох повернутих значень у Go
Який ідіоматичний спосіб відтворення кількох повернених значень у Go? Чи можете ви це зробити в одному рядку, або вам потрібно використовувати тимчасові змінні, такі як я зробив у наведеному нижче прикладі? package main import "fmt" func oneRet() interface{} { return "Hello" } func twoRet() (interface{}, error) { return "Hejsan", nil …

1
Чому я повинен використовувати log.Println замість fmt.Println?
З log.go (реалізація пакету журналу): 167 // Println calls l.Output to print to the logger. 168 // Arguments are handled in the manner of fmt.Println. 169 func (l *Logger) Println(v ...interface{}) { l.Output(2, fmt.Sprintln(v...)) } log.Printlnце просто оболонка функції, для fmt.Sprintlnчого я повинен використовувати її замість fmt.Printlnабо fmt.Sprintln? Якісь практичні …
77 logging  go 

4
Як надійно виявити os / платформу в Go
Ось те, що я зараз використовую, і, на мою думку, це робить роботу, але повинен бути кращий спосіб: func isWindows() bool { return os.PathSeparator == '\\' && os.PathListSeparator == ';' } Як бачите, у моєму випадку все, що мені потрібно знати, це як виявити вікна, але я хотів би знати …

7
Дані POST за допомогою багаточастинних / форм-даних Content-Type
Я намагаюся завантажити зображення зі свого комп’ютера на веб-сайт за допомогою go. Зазвичай я використовую скрипт bash, який надсилає файл і ключ на сервер: curl -F "image"=@"IMAGEFILE" -F "key"="KEY" URL це працює нормально, але я намагаюся перетворити цей запит у свою програму golang. http://matt.aimonetti.net/posts/2013/07/01/golang-multipart-file-upload-example/ Я спробував це посилання та багато …

3
Як перевірити http-дзвінки в Go за допомогою httptest
У мене є такий код: package main import ( "encoding/json" "fmt" "io/ioutil" "log" "net/http" "time" ) type twitterResult struct { Results []struct { Text string `json:"text"` Ids string `json:"id_str"` Name string `json:"from_user_name"` Username string `json:"from_user"` UserId string `json:"from_user_id_str"` } } var ( twitterUrl = "http://search.twitter.com/search.json?q=%23UCL" pauseDuration = 5 * time.Second …
76 http  go 

7
Встановлення файлів cookie за допомогою net / http
Я намагаюся встановити файли cookie за допомогою пакета net / http від Go. Я маю: package main import "io" import "net/http" import "time" func indexHandler(w http.ResponseWriter, req *http.Request) { expire := time.Now().AddDate(0, 0, 1) cookie := http.Cookie{"test", "tcookie", "/", "www.domain.com", expire, expire.Format(time.UnixDate), 86400, true, true, "test=tcookie", []string{"test=tcookie"}} req.AddCookie(&cookie) io.WriteString(w, "Hello …
76 cookies  go 

8
сервер повернув помилку на етапі автентифікації SASL: Помилка автентифікації
Далі - мій циферблат для підключення MongoDB від GoLang. Але він повертає паніку " Сервер повернув помилку на етапі автентифікації SASL: Помилка автентифікації. ". Моє ім’я користувача, пароль, hostAddrs та dbName правильні. Чого мені тут не вистачає? dbName: = os.Getenv("ENV_DBNAME") userName: = os.Getenv("ENV_DBUSER") password: = os.Getenv("ENV_DBPASS") dbHost: = os.Getenv("ENV_DBHOST") mongoDialInfo: …

5
Як вийти з програми go на честь відкладених дзвінків?
Мені потрібно використовувати deferбезкоштовні розподіли, створені вручну за допомогою Cбібліотеки, але os.Exitв якийсь момент мені також потрібно зі статусом не 0. Хитра частина полягає в тому, що os.Exitпропускає будь-яку відкладену інструкцію: package main import "fmt" import "os" func main() { // `defer`s will _not_ be run when using `os.Exit`, so …
76 go  exit  deferred 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.