@proGO

Страница 1069 из 1674
Maxim
20.12.2017
07:08:47
А https://github.com/tucnak/telebot ?
Уже лучше. Про актуальность сейчас не знаю, но когда я им пользовался он тоже месяца так на два-три отстал. Тогда. Сейчас не знаю

hamper ?
20.12.2017
07:09:21
Там коммит вчера последний, на счет актуальности не знаю.

Maxim
20.12.2017
07:10:05
Я всё равно психанул и пишу своё. Уже пару ботов перенёс, вроде без боли

hamper ?
20.12.2017
07:13:07
Не проще было запуллреквестить нужную логику в готовые?

Google
Maxim
20.12.2017
07:13:57
Не проще было запуллреквестить нужную логику в готовые?
В том-то и дело что меня не очень устраивает существующие архитектуры

go-telegram-bot-api, например, уже сложно фиксить из-за странных решений заложенных изначально

Demuz
20.12.2017
07:21:58
Через месяц повторим.

Daniel
20.12.2017
07:30:40
а на картинке что?

Demuz
20.12.2017
07:31:04
Код и ошибка.

Daniel
20.12.2017
07:31:04
и, главное, зачем мог понадобиться разборщик из структуры в карту?

Код и ошибка.
а текстом?

Demuz
20.12.2017
07:31:27
а текстом?
Сукунду.

type Server struct { ID uint Title string NodeID uint }

Daniel
20.12.2017
07:31:52
Неважно. Нужно.
мне - важно. я решаю, помогать, или забить

Demuz
20.12.2017
07:31:53
func main() { srv := Server{3, "ProxmoxVE", 1} fmt.Println(srv.StructDisassemble()) }

func (S *Server) StructDisassemble() map[string]interface{} { disMap := map[string]interface{}{} instance := S elements := reflect.ValueOf(&instance).Elem() typeOfStruct := elements.Type() for i := 0; i < elements.NumField(); i++ { f := elements.Field(i) disMap[typeOfStruct.Field(i).Name] = f.Interface() } return disMap }

Google
Daniel
20.12.2017
07:32:50
для такого простого кода (без нестандартных модулей) есть https://play.golang.org/

Demuz
20.12.2017
07:33:06
type Server struct { ID uint Title string NodeID uint }
Мне важно видеть имена полей ("ID", "Title", "NodeID"), и затем их значения, данные им в инстансе.

Demuz
20.12.2017
07:38:17
printf("%+v", pointer)
https://play.golang.org/p/9grvnZnhPJ

Поможете?

John
20.12.2017
07:38:58
Поможете?
Оставь просто srv - https://play.golang.org/p/T1zox99TLf

Если Я правильно понял суть вопроса :)

Demuz
20.12.2017
07:39:35
Здорово.! Спасибо!

А что их тип еще видешь, тогда еще рефлект туда добавить, да?

John
20.12.2017
07:42:26
А что их тип еще видешь, тогда еще рефлект туда добавить, да?
Если для каждого поля, то скорей всего да. Тут Я не помню :)) Но вообще, мне такое не часто требовалось )

Kirill
20.12.2017
07:42:51
Утра доброго! Господа, а есть ли способ быстро получить множество ошибок которые может вернуть какая-либо функция? Например есть api к телеграмму , есть функция которая ининциализирует бота package main import "gopkg.in/telegram-bot-api.v4" func main() { bot, err := tgbotapi.NewBotAPI("some very secret token") if err != nil { panic("Oh no!") } } В err может упасть дюжина разных ошибок (плохой токен, проблемы с сетью и т.д.). Можно ли как-то получить их список (имеется ввиду разные type NetError struct удолетворящие интерфейсу error) чтобы каждую по-своему обрабатывать, не излазив все исходники? Или даже примерного вспомогательного инструмента нет?

John
20.12.2017
07:44:46
Demuz
20.12.2017
07:45:07
Если для каждого поля, то скорей всего да. Тут Я не помню :)) Но вообще, мне такое не часто требовалось )
Спасибо. Обычно тоже не требуется, просто иногда я получаю ответ типа {0 0 0 0 0 0 0 1 2 0 0} и фиг пойми на каком ключе значение 1 стоит )))

Александр
20.12.2017
07:49:47
можно свитч по типу ?

Daniel
20.12.2017
07:50:34
можно, но стандарта на типизацию ошибок (как, например, в яве) в go нет

поэтому в общем случае ты имеешь уникальное значение некоего типа, удовлетворяющего интерфейсу error. и все

John
20.12.2017
07:52:20
Google
Александр
20.12.2017
07:52:26
я думаю можно что-то подумать конечно с этим

кастомную либу сделать ?

Daniel
20.12.2017
07:52:37
можно

будет 15-ый стандарт

такие вещи должны в языке быть

Kirill
20.12.2017
07:53:04
Неужели автоматически собрать все типы которые могут вернуться в error так сложно? Чисто чтобы знать к чему нужно кастить ошибку?

Daniel
20.12.2017
07:53:05
впрочем - их нигде, кроме явы, и нет

Александр
20.12.2017
07:53:17
в пыхе щаз мода на эксепшены ?

Savely
20.12.2017
07:54:13
что возвращает fmt.Errorf()?
Строку в лог и завершение программы

os.Exit(1) вроде или типа того

Хотя может путаю с Fatal

Александр
20.12.2017
07:54:39
Error!

Daniel
20.12.2017
07:54:40
садитесь, 2

Александр
20.12.2017
07:54:49
она возращает error

Daniel
20.12.2017
07:54:49
errors.New он возвращает

Savely
20.12.2017
07:55:17
Окей, спутал)

Александр
20.12.2017
07:55:25
errors.New он возвращает
ну вообще то errorString если мы так про типы то

Google
Kirill
20.12.2017
07:56:17
errors.New он возвращает
Ну да, когда все ошибки задаются через errors.New разобрать - черт ногу сломит. Но ведь часть разрабов пишут под каждую ошибку свою переменную или тип. Их-то собрать можно?

Александр
20.12.2017
07:56:20
ну как нед?

Daniel
20.12.2017
07:56:25
а errors.New(), в свою очередь, возвращает указатель на неэкспортируемый errorString. Вокзал. В смысле - приехали...

John
20.12.2017
07:57:27
ну как нед?
Он тебе возвращает указатель на объект error, у которого есть метод Error(), который и вернет тебе строку ;)

Admin
ERROR: S client not available

Daniel
20.12.2017
07:57:47
не бывает объекта error. error - это интерфейс, а не тип

Александр
20.12.2017
07:57:52
указатель на errorString, который реализует интерфейс error

John
20.12.2017
07:58:18
ладно, errors ))

Maxim
20.12.2017
07:58:35
Будет. Она догоняет сам код

Александр
20.12.2017
07:58:46
https://golang.org/src/errors/errors.go
и что же мы там видим?

return &errorString{text}

внезапно да

John
20.12.2017
07:59:25
внезапно да
И ? Говорю ж, тебе вернется объект

Александр
20.12.2017
07:59:48
ты говоришь что вернется объект типа error

хотя это не так

John
20.12.2017
08:00:04
ты говоришь что вернется объект типа error
Тут был не прав, объект errorString да )

Александр
20.12.2017
08:00:19
ты и сейчас не прав, тип то errorString называется ?

он просто реализует интерфейс error

Google
John
20.12.2017
08:00:35
ды :)

Но не строку ж в чистом виде

Александр
20.12.2017
08:01:09
errorString это структура

если уже пошла такая пьянка

John
20.12.2017
08:01:27
errorString это структура
А где Я это отрицал ?)

Александр
20.12.2017
08:01:47
дайте стикер - "рукалицо", под рукой нет

John
20.12.2017
08:01:59
?

Daniel
20.12.2017
08:02:10
коллеги

сворачивайтесь

тут не о чем так долго говорить

Александр
20.12.2017
08:02:36
O_o ну мы же про гоу говорим

Kirill
20.12.2017
08:02:42
Ммм... Время слоупочных вопросов. А разве интерфейс сам по себе не тип? type I interface {} Все-таки type и все дела

John
20.12.2017
08:02:46
сворачивайтесь
Рабочий день только начался, а переливание из пустого в порожнее любимое дело ))

Александр
20.12.2017
08:03:31
Kirill
20.12.2017
08:05:06
несколько типов могут реализовывать 1 интерфейс
Ну это понятно. Я скорее чисто про формальное определение - считается ли интерфейс специфическим типом который может реализовывать другие типы, или назвать его типом - смертный грех?

Страница 1069 из 1674