go- все статьи тега ➜ страница 2


Есть цикл foreach в Go?

есть foreach построить на языке Go? Могу ли я перебирать срез или массив с помощью for? ...

Как проверить, существует ли файл в Go?

стандартная библиотека Go не имеет функции, предназначенной исключительно для проверки того, существует ли файл или нет (например, Python os.path.exists). Что такое идиоматическое как это сделать? ...

Форматировать строку Go без печати?

есть ли простой способ отформатировать строку в Go без печати строки? Я могу сделать: bar := "bar" fmt.Printf("foo: %s", bar) но я хочу, чтобы форматированная строка возвращалась, а не печаталась, чтобы я мог манипулировать ею дальше. я мог бы также сделать что-то вроде: s := "foo: " + bar но это становится трудно читать, когда строка формата является сложным и громоздким, когда одна или многие части не являются строками и должны быть преобразованы в, как i := 25 s := "foo: " + strconv. ...

Как читать / записывать из / в файл с помощью Go?

Я пытался научиться идти самостоятельно, но я был в тупике, пытаясь читать и писать в обычные файлы. Я могу добраться до inFile, _ := os.Open(INFILE, 0, 0), но на самом деле получить содержание файла не имеет смысла, потому что функция read принимает []byte в качестве параметра. func (file *File) Read(b []byte) (n int, err Error) ...

Как обрабатывать конфигурацию в Go [закрыто]

Я новичок в программировании Go, и мне интересно: каков предпочтительный способ обработки параметров конфигурации для программы Go (такие вещи можно использовать свойства файлы или ini файлы, в других контекстах)? ...

Организация многофайлового проекта Go

Примечание: этот вопрос относится к этот, но два года это очень большой срок в истории. каков стандартный способ организации проекта Go во время разработки ? мой проект-это единый пакет mypack, Так что я думаю, что я положил все .перейти файлы в . но тогда я хотел бы проверить его во время разработки, поэтому мне нужен хотя бы файл, объявляющий main пакета, так что я могу сделать go run trypack.go как мне это организовать ? Мне нужно сделать go install mypack каждый раз, когда я хочу попробо ...

чтение файла строка за строкой в go

Я не могу найти file.ReadLine функция в Go. Я могу понять, как быстро написать один, но просто интересно, если я что-то упускаю из виду здесь. Как читать файл построчно? ...

Как печатать переменные структуры в консоли?

как я могу распечатать (в консоли) с Id,Title,Name и т. д. это struct в Golang? type Project struct { Id int64 `json:"project_id"` Title string `json:"title"` Name string `json:"name"` Data Data `json:"data"` Commits Commits `json:"commits"` } ...

Обработка запроса JSON Post в Go

Итак, у меня есть следующее, что кажется невероятно хакерским, и я думал про себя, что Go имеет более совершенные библиотеки, чем это, но я не могу найти пример обработки запроса POST данных JSON. Все они формируют посты. вот пример запрос: curl -X POST -d "{"test": "that"}" http://localhost:8082/test и вот код, с логами встроенных: package main import ( "encoding/json" "log" "net/http" ) type test_struct struct { Test string } func test(rw http.ResponseWriter, req *ht ...

Можно ли захватить сигнал Ctrl+C и запустить функцию очистки, в режиме" отложить"?

Я хочу, чтобы захватить Ctrl+C (SIGINT) сигнал, отправленный с консоли и распечатать некоторые частичные итоги запуска. это возможно в Golang? Примечание: когда я впервые опубликовал вопрос, я был смущен Ctrl+C будучи SIGTERM вместо SIGINT. ...

Что является лучшим способом, чтобы проверить на пустую строку в Go?

какой метод лучше (более idomatic) для тестирования непустых строк (в Go)? if len(mystring) > 0 { } или: if mystring != "" { } или что-то еще? ...

Настройка заголовков HTTP

Я пытаюсь установить заголовок на моем веб-сервере Go. Я использую gorilla/mux и net/http пакеты. Я хочу Access-Control-Allow-Origin: * разрешить кросс-домен AJAX. вот мой код: func saveHandler(w http.ResponseWriter, r *http.Request) { // do some stuff with the request data } func main() { r := mux.NewRouter() r.HandleFunc("/save", saveHandler) http.Handle("/", r) http.ListenAndServe(":"+port, nil) } The net/http пакет имеет документацию, описывающую отправку заголовков htt ...

Удаление пакетов, установленных с помощью go get

Я побежал go get package чтобы загрузить пакет, прежде чем узнать, что мне нужно установить мой GOPATH в противном случае этот пакет загрязняет мою корневую установку Go (я бы предпочел, чтобы мой Go install был чистым и отделял ядро от пользовательского). Как удалить пакеты, установленные ранее? ...

Декодирование JSON в Golang с помощью json.Unmarshal vs json.Новый декодер.Декодировать

Я разрабатываю клиент API, где мне нужно кодировать полезную нагрузку JSON по запросу и декодировать тело JSON из ответа. Я прочитал исходный код из нескольких библиотек и из того, что я видел, у меня есть в основном две возможности для кодирования и декодирования строки JSON. использовать json.Unmarshal передача всей строки ответа data, err := ioutil.ReadAll(resp.Body) if err == nil && data != nil { err = json.Unmarshal(data, value) } или через json.NewDecoder.Decode err = jso ...

Тип преобразования срезов интерфейсов в go

мне любопытно, почему go неявно преобразует []T до []interface{} когда он будет неявно преобразовать T до interface{}. Есть ли что-то нетривиальное в этом преобразовании, что мне не хватает? пример: func foo([]interface{}) { /* do something */ } func main() { var a []string = []string{"hello", "world"} foo(a) } go build жалуется не может использовать (type []string) в качестве интерфейса типа [] {} в аргументе функции и если я попытаюсь сделать это явно, то же самое:b := [ ...

Go install всегда не удается установить каталог вне GOPATH

~/src/go-statsd-client> echo $GOPATH /Users/me/gopath ~/src/go-statsd-client> echo $GOROOT /usr/local/Cellar/go/1.1.1 ~/src/go-statsd-client> go install go install: no install location for directory /Users/me/src/go-statsd-client outside GOPATH независимо от того, какая структура проекта в этом всегда терпит неудачу с тем же сообщением. Отлично сочетаются строительных работ. вот мой go env GOARCH="amd64" GOBIN="" GOCHAR="6" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin ...

Последний элемент-фрагмент

что такое Go способ извлечения последнего элемента slice? var slice []int slice = append(slice, 2) slice = append(slice, 7) slice[len(slice)-1:][0] // Retrieves the last element решение выше работает, но кажется неудобным. ...

Есть ли способ, чтобы сделать повторяющиеся задачи с интервалами в Golang?

есть ли способ сделать повторяющиеся фоновые задачи в Go? Я думаю о чем-то вроде Timer.schedule(task, delay, period) в Java. Я знаю, что могу сделать это с goroutine и Time.sleep(), но я хотел бы что-то, что легко остановлены. вот что я получил, но выглядит уродливо для меня. Есть ли более чистый / лучший способ? func oneWay() { var f func() var t *time.Timer f = func () { fmt.Println("doing stuff") t = time.AfterFunc(time.Duration(5) * time.Second, f) } ...

обнаружение nil в Go

Я вижу много кода в Go для обнаружения nil, например: if err != nil { // handle the error } , у меня есть структура, как это: type Config struct { host string port float64 } и config-это экземпляр Config, когда я делаю: if config == nil { } есть ошибка компиляции, говоря: не удается преобразовать nil в тип Config ...

Почему нет дженериков в Go?

отказ от ответственности: я только играл с Go в течение одного дня, так что есть хороший шанс, что я пропустил много. кто-нибудь знает, почему нет реальной поддержки дженериков/шаблонов/whatsInAName в Go? Так что есть общий map, но это предоставлено компилятором, в то время как программист Go не может написать свою собственную реализацию. Со всеми разговорами о том, чтобы сделать Go максимально ортогональным, почему я могу использовать общий тип, но не создавать новый? особенно когда он прихо ...