@gogolang

Страница 691 из 1630
Александр
06.12.2017
15:43:22
ошибок парса json

jsonDecoder := json.NewDecoder(r.Body) err = jsonDecoder.Decode(modelStruct)

по идеи в err должна быть не строка ?

Aleksandr
06.12.2017
15:44:27
ну а с чего ты взял что строка?

Google
Александр
06.12.2017
15:45:04
сделал log.Print(err)

Aleksandr
06.12.2017
15:45:18
и?

он тебе показал тип?

Александр
06.12.2017
15:48:12
ну он так и не покажет

он просто строку распечатал

поставил брейкпоинт, обычный err

тип error

Aleksandr
06.12.2017
15:48:40
error - это интерфейс

Александр
06.12.2017
15:49:35
Vladimir
06.12.2017
15:49:42
Всем привет. Установил plugin Go для VS Code. Все время пишет The "gocode" command is not available., хоть все пакеты уже установил. GOPATH вроде настроен. В чем может быть проблема?



Aleksandr
06.12.2017
15:50:44
errorString

Google
Александр
06.12.2017
15:51:03
ну это я и так вижу

в документации долбили про какую то структуру, где есть поле

Aleksandr
06.12.2017
15:51:35
ну это я и так вижу
только не интерпретируешь

Vladimir
06.12.2017
15:51:55
?

Мерлин
06.12.2017
15:52:01
он просто строку распечатал
Потому что любая ошибка может быть приведена к строке. Error в Go – это интерфейс, с одним методом, возвращающим строку

Aleksandr
06.12.2017
15:52:15
ну это я и так вижу
сделай демку

Александр
06.12.2017
15:52:38
блин я уже выше скидывал демку, там две строчки

Aleksandr
06.12.2017
15:52:55
блин я уже выше скидывал демку, там две строчки
скинь еще раз. и не две строчки, а рабочую демку

Александр
06.12.2017
15:53:02
err := json.NewDecoder(r.Body).Decode(struct)

мне надо понять в каком поле он облажался

Aleksandr
06.12.2017
15:53:14
демку сделай

Александр
06.12.2017
15:53:27
для этого надо изнутри выковорить информацию

Мерлин
06.12.2017
15:53:49
Александр
06.12.2017
15:54:09
Посмотри, что внутри ошибки лежит
я выше печатал что на брекпоинте

Aleksandr
06.12.2017
15:54:09
для этого надо изнутри выковорить информацию
не надо. подай ему невалидный json. он у тебя уже есть

Мерлин
06.12.2017
15:54:30
для этого надо изнутри выковорить информацию
Приведи к типу из документации

Александр
06.12.2017
15:54:59
ну вот я там видел в примерах что-то, а как приведение к типу добавит туда информации?

Aleksandr
06.12.2017
15:55:31
сделай демку уже

Александр
06.12.2017
15:55:34
у нас есть вася, он человек. Мы приводим его к типу "строитель" и нихрена специализация там заполнена не будет

Мерлин
06.12.2017
15:57:15
ну вот я там видел в примерах что-то, а как приведение к типу добавит туда информации?
Чувак, пройди тур го, посмотри, что такое интерфейсы и как извлекать из них типы

Google
Мерлин
06.12.2017
15:57:48
Ты явно не знаком с основами языка. Посмотри, там немного

Александр
06.12.2017
15:58:07
ну там что-то через свитч хреначили

но если я не вижу в отладчике инфа, что извлекать то?

Aleksandr
06.12.2017
15:58:56
демку сделай

Mush
06.12.2017
16:00:34
сделал log.Print(err)
разве это не приводит к вызову метода String()  если он есть у выводимого объекта? поэтому и получается что string log.Printf(“%+v”, err) - вроде так истинное значение можно вывести

Александр
06.12.2017
16:03:20
ясный фиг что приводит

но я смотрю в IDE

поставив брекпоинт

демку сделай
https://play.golang.org/p/pjmwZ7kGzE

держи демку блин

Aleksandr
06.12.2017
16:06:15
https://play.golang.org/p/_XeSkH19E8

Александр
06.12.2017
16:07:45
магия блин

Александр
06.12.2017
16:07:57
я уже сам так привел и внезапно она "заполнилась"

при жесткой типизации, если я возращаю тип string он всегда тип string

а тут возращают тип error (у которого нет и намека на структуру внутри по отладчику)

Александр
06.12.2017
16:09:33
как тогда он из воздуха взял данные?

Aleksandr
06.12.2017
16:09:39
Александр
06.12.2017
16:11:40
я смотрю на подсказки IDE

Aleksandr
06.12.2017
16:12:07
странная приоритезация у тебя)

Google
Александр
06.12.2017
16:12:19
возращаемый тип error (интерфейс)

Aleksandr
06.12.2017
16:12:28
нет, возвращает другой тип. смотри строку 18

ты 10 минут пытался доказать что невозможно сделать то что невозможно. теперь пытаешься доказать, что невозможно было сделать то, что сделано

Alexander
06.12.2017
16:15:20
struct Person { name string } xml.Marshal(Person) в итоге получится <Person><name></Person>

Александр
06.12.2017
16:15:39
так.. err := json.NewDecoder(r.Body).Decode(struct) возращает не тоже самое

Alexander
06.12.2017
16:16:13
как сделать person с маленькой буквы? Я пошел через доп структуру, которая является наследником и преобразуется с маленькой буквой типа struct person {Person}

Можно как красивее это сделать?

Alexander
06.12.2017
16:16:33
В https://play.golang.org/

Admin
ERROR: S client not available

Alexander
06.12.2017
16:17:05
и куда

Aleksandr
06.12.2017
16:17:09
и куда
в гугл

Alexander
06.12.2017
16:17:26
куда вставлю тэг, person это название структуры а не филда

Александр
06.12.2017
16:17:58
да бред ?

Aleksandr
06.12.2017
16:18:22
куда вставлю тэг, person это название структуры а не филда
первая ссылка из гугла https://golang.org/src/encoding/xml/example_test.go

Александр
06.12.2017
16:18:32
сделал демку и получил *json.UnmarshalTypeError ?

а в коде делаю log.Printf("%+T", err) и получаю *errors.errorString

разница только в том что скормил вместо r.Body -> r := bytes.NewReader([]byte(text))

Google
Alexander
06.12.2017
16:20:02
Эрик
06.12.2017
16:20:07
Всем добрый вечер! С какой книги начать изучение языка?

Alexander
06.12.2017
16:20:18
спасибо, сейчас перечитаю, посмотрю что да как

Daniel
06.12.2017
16:20:18
с tour of go

Эрик
06.12.2017
16:21:02
tour.golang.org??

Dmitry
06.12.2017
16:21:34
.

Александр
06.12.2017
16:35:11
о зацените

https://play.golang.org/p/ZPyAiU1fqc

вот на что я и напоролся с этим

если кормить CloserReader вернет одно, если просто реадер - другое

Александр
06.12.2017
16:48:10
https://play.golang.org/p/QGeGldhuwd
так там в том и проблема что r.Body это именно io.ReaderClose

щаз ищу как его назад сконвертировать в обычный

Vladislav
06.12.2017
17:12:55
щаз ищу как его назад сконвертировать в обычный
Ты просто хочешь использовать его как ридер или чтобы он закрывался сам?

Александр
06.12.2017
17:13:38
да мне пофиг, просто не понимаю почему стандартый декод возращает разные типы ошибок

самый запасной вариант, вычитать все в строку просто и скормить

должно сработать

buf, _ := ioutil.ReadAll(r.Body) err := json.Unmarshal(buf, model) так нормально

но это костыль, вместо нормального "бесплатного" буфера, мы складываем все в переменную

как бы r.Body скормить так похитрее

чего O_o

перенес в код, а там все равно *errors.errorString

Страница 691 из 1630