Вопросы с тегом «go»

Go - это язык программирования с открытым исходным кодом. Он имеет статическую типизацию, с синтаксисом, свободно полученным из C, с добавлением автоматического управления памятью, безопасностью типов, некоторыми возможностями динамической типизации, дополнительными встроенными типами, такими как массивы переменной длины (называемые слайсами) и карты значений ключей, и большая стандартная библиотека.

10
Преобразовать интерфейс {} в int
Я пытаюсь получить значение из JSON и преобразовать его в int, но это не работает, и я не знаю, как это сделать правильно. Вот сообщение об ошибке: ...cannot convert val (type interface {}) to type int: need type assertion И код: var f interface{} err = json.Unmarshal([]byte(jsonStr), &f) if err …
100 go 

3
Конвертировать карту Go в json
Я попытался преобразовать свою карту Go в строку json с помощью encoding/jsonMarshal, но в результате получилась пустая строка. Вот мой код: package main import ( "encoding/json" "fmt" ) type Foo struct { Number int `json:"number"` Title string `json:"title"` } func main() { datas := make(map[int]Foo) for i := 0; i …
100 json  go 


3
Частично преобразование JSON в карту в Go
Мой сервер websocket получит и демаршалирует данные JSON. Эти данные всегда будут заключены в объект с парами ключ / значение. Строка ключа будет действовать как идентификатор значения, сообщая серверу Go, что это за значение. Зная, какой тип значения, я могу затем перейти к JSON демаршалировать значение в правильный тип структуры. …
99 json  map  go 

8
Как отключить неиспользуемую ошибку импорта Golang
По умолчанию Go рассматривает неиспользованный импорт как ошибку, вынуждая вас удалить импорт. Я хочу знать, есть ли надежда изменить это поведение, например, превратить его в предупреждение. Я нахожу эту проблему очень раздражающей, потому что мне не нравится писать на Go. Например, я тестировал какой-то код, отключая сегмент / функцию. Некоторые …
99 go 

4
Go: panic: ошибка времени выполнения: недопустимый адрес памяти или разыменование нулевого указателя
При запуске моей программы Go она паникует и возвращает следующее: panic: runtime error: invalid memory address or nil pointer dereference [signal 0xb code=0x1 addr=0x38 pc=0x26df] goroutine 1 [running]: main.getBody(0x1cdcd4, 0xf800000004, 0x1f2b44, 0x23, 0xf84005c800, ...) /Users/matt/Dropbox/code/go/scripts/cron/fido.go:65 +0x2bb main.getToken(0xf84005c7e0, 0x10) /Users/matt/Dropbox/code/go/scripts/cron/fido.go:140 +0x156 main.main() /Users/matt/Dropbox/code/go/scripts/cron/fido.go:178 +0x61 goroutine 2 [syscall]: created by runtime.main /usr/local/Cellar/go/1.0.3/src/pkg/runtime/proc.c:221 …
99 go 

3
диапазон по интерфейсу {}, в котором хранится фрагмент
Учитывая сценарий, в котором у вас есть функция, которая принимает t interface{}. Если определено, что tэто срез, как мне пройти rangeнад этим срезом? func main() { data := []string{"one","two","three"} test(data) moredata := []int{1,2,3} test(data) } func test(t interface{}) { switch reflect.TypeOf(t).Kind() { case reflect.Slice: // how do I iterate here? …

3
Значение по умолчанию в методе Go
Есть ли способ указать значение по умолчанию в функции Go? Я пытаюсь найти это в документации, но не могу найти ничего, что указывало бы на то, что это вообще возможно. func SaySomething(i string = "Hello")(string){ ... }
99 go 

4
Разделение модульных тестов и интеграционных тестов в Go
Есть ли устоявшаяся передовая практика разделения модульных и интеграционных тестов в GoLang (свидетельствовать)? У меня есть сочетание модульных тестов (которые не полагаются на какие-либо внешние ресурсы и поэтому выполняются очень быстро) и интеграционных тестов (которые полагаются на любые внешние ресурсы и, следовательно, работают медленнее). Итак, я хочу иметь возможность контролировать, …

1
Сделайте запрос POST в кодировке URL, используя `http.NewRequest (…)`
Я хочу сделать POST-запрос к API, отправляющему мои данные как application/x-www-form-urlencodedтип содержимого. Из-за того, что мне нужно управлять заголовками запросов, я использую этот http.NewRequest(method, urlStr string, body io.Reader)метод для создания запроса. Для этого запроса POST я добавляю свой запрос данных к URL-адресу и оставляю тело пустым, примерно так: package main …
98 http  go 


4
Что может случиться, если я не закрою ответ. Body?
В Go у меня есть несколько HTTP-ответов, и я иногда забываю позвонить: resp.Body.Close() Что происходит в этом случае? будет утечка памяти? Также безопасно ли вставлять defer resp.Body.Close()сразу после получения объекта ответа? client := http.DefaultClient resp, err := client.Do(req) defer resp.Body.Close() if err != nil { return nil, err } Что …
98 go 

2
Почему я могу вводить псевдонимы функций и использовать их без преобразования типов?
В Go, если вы определяете новый тип, например: type MyInt int Затем вы не можете передать a MyIntфункции, ожидающей int, или наоборот: func test(i MyInt) { //do something with i } func main() { anInt := 0 test(anInt) //doesn't work, int is not of type MyInt } Хорошо. Но почему …
97 types  casting  go 

5
Как создать вложенные каталоги с помощью Mkdir в Golang?
Я пытаюсь создать набор вложенных каталогов из исполняемого файла Go, такого как dir1 / dir2 / dir3. Мне удалось создать единственный каталог с этой строкой: os.Mkdir("." + string(filepath.Separator) + c.Args().First(),0777); Однако я понятия не имею, как подойти к созданию заранее определенного вложенного набора каталогов внутри этого каталога.
97 go  mkdir 

5
Как отправить ответ JSON с помощью Go?
Вопрос: В настоящее время я распечатываю свой ответ func Index таким образом, fmt.Fprintf(w, string(response)) однако, как я могу правильно отправить JSON в запросе, чтобы он мог быть использован представлением? package main import ( "fmt" "github.com/julienschmidt/httprouter" "net/http" "log" "encoding/json" ) type Payload struct { Stuff Data } type Data struct { …
97 json  go 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.