🏁Александр
магия блин
🏁Александр
я уже сам так привел и внезапно она "заполнилась"
🏁Александр
при жесткой типизации, если я возращаю тип string он всегда тип string
🏁Александр
а тут возращают тип error (у которого нет и намека на структуру внутри по отладчику)
Aleksandr
🏁Александр
как тогда он из воздуха взял данные?
Aleksandr
🏁Александр
я смотрю на подсказки IDE
Aleksandr
странная приоритезация у тебя)
🏁Александр
возращаемый тип error (интерфейс)
Aleksandr
нет, возвращает другой тип. смотри строку 18
Aleksandr
ты 10 минут пытался доказать что невозможно сделать то что невозможно. теперь пытаешься доказать, что невозможно было сделать то, что сделано
Aleksandr
struct Person {
name string
}
xml.Marshal(Person) в итоге получится <Person><name></Person>
🏁Александр
так.. err := json.NewDecoder(r.Body).Decode(struct) возращает не тоже самое
Aleksandr
Aleksandr
как сделать person с маленькой буквы? Я пошел через доп структуру, которая является наследником и преобразуется с маленькой буквой типа struct person {Person}
Aleksandr
Можно как красивее это сделать?
aadz
В https://play.golang.org/
Aleksandr
Aleksandr
просто в гугл вбей golang xml marshal
Aleksandr
и куда
Aleksandr
Aleksandr
куда вставлю тэг, person это название структуры а не филда
🏁Александр
да бред 🙁
🏁Александр
сделал демку и получил *json.UnmarshalTypeError 🙁
🏁Александр
а в коде делаю log.Printf("%+T", err) и получаю *errors.errorString
🏁Александр
разница только в том что скормил вместо r.Body -> r := bytes.NewReader([]byte(text))
Aleksandr
Anonymous
Всем добрый вечер! С какой книги начать изучение языка?
Aleksandr
спасибо, сейчас перечитаю, посмотрю что да как
Daniel
с tour of go
Anonymous
tour.golang.org??
朝の日差し ✙
🏁Александр
о зацените
🏁Александр
https://play.golang.org/p/ZPyAiU1fqc
🏁Александр
вот на что я и напоролся с этим
🏁Александр
если кормить CloserReader вернет одно, если просто реадер - другое
Aleksandr
🏁Александр
щаз ищу как его назад сконвертировать в обычный
🏁Александр
да мне пофиг, просто не понимаю почему стандартый декод возращает разные типы ошибок
🏁Александр
самый запасной вариант, вычитать все в строку просто и скормить
🏁Александр
должно сработать
🏁Александр
buf, _ := ioutil.ReadAll(r.Body)
err := json.Unmarshal(buf, model)
так нормально
🏁Александр
но это костыль, вместо нормального "бесплатного" буфера, мы складываем все в переменную
🏁Александр
как бы r.Body скормить так похитрее
🏁Александр
чего O_o
🏁Александр
перенес в код, а там все равно *errors.errorString
🏁Александр
ну не может быть 🙁
Radaram
Парни, поодскажите как импортировать функции с файлов если они лежат в одном пакете
например, в каталоге parser/ лежат модули main.go и parser.go, и как импортировать функцию из parser.go в main.go?
Oleg
Если в одном пакете ничего не надо импортировать
Kirill
Radaram
тогда во всех модулях мне надо прописать package main, так?
Aleksandr
Всем добрый вечер! С какой книги начать изучение языка?
Aleksandr
спасибо, сейчас перечитаю, посмотрю что да как
Aleksandr
с tour of go
Aleksandr
tour.golang.org??
Kirill
Radaram
Radaram
а что любят?
в первых шагах, обычно используют пакет и рядом еще пакет и делают импорты, а гугление по вопросу чтобы лежало в одном каталоге не помогло.
я и так не пихал импорты, но у меня ошибки: undefined
Radaram
может не стоит запускать go run main.go или наоборот имена функций с маленькой буквы делать если функции используются только внутри одного пакета
Aleksandr
Aleksandr
нет
Aleksandr
первая буква функции указывает на видимость между пакетами. внутри одного пакета весь код доступен
🏁Александр
gopkg.in/guregu/null.v3 <-- суки!
🏁Александр
взяли блин ошибку вернули строкой
🏁Александр
внутри UnmarshalJSON делают
var v interface{}
if err = json.Unmarshal(data, &v); err != nil {
return err
}
далее свичом по типу и вернуть ошибку в виде строки
🏁Александр
я уже третий час дебажу эту хрень
Aleksandr
то есть ты даже другой пакет использовал и удивлялся почему разные пакеты разный ответ отдают. ну ок
🏁Александр
я уже с ума начал сходить, почему стандартный маршал в сендбоксе работает, а в проекте не тот тип ошибки
🏁Александр
кто-же знал что они дефолтные будут подавлять 🙁
🏁Александр
в json в смысле
🏁Александр
и это не другой пакет, это другой тип
🏁Александр
type Test struct {
FirstName null.String
}