Aleksandr
в го так нельзя.
Andrei 🦉
как я уже говорил - го так не умеет
🄽🄸🄺🄸🅃🄰
как я уже говорил - го так не умеет
а какие могут быть варианты?
Andrei 🦉
у тебя функция будет возвращать либо интерфейс, который потом опять нужно будет приводить, либо конкретный тип
Aleksandr
тебе нужен switch и на каждый тип своя функция
🄽🄸🄺🄸🅃🄰
ну ведь функцию со свитчем я могу вернуть из пакета?)
🄽🄸🄺🄸🅃🄰
или я вернусь к исходной точке, где снова будут интерфейсы)
Andrei 🦉
а какие могут быть варианты?
варианты - писать все в лоб
🄽🄸🄺🄸🅃🄰
ясно
Andrei 🦉
либо переделать архитектуру приложения, чтобы у тебя не возникало потребности в асертах
🄽🄸🄺🄸🅃🄰
ладно, не смертельно
🄽🄸🄺🄸🅃🄰
🄽🄸🄺🄸🅃🄰
Хотел покороче
🄽🄸🄺🄸🅃🄰
но тут уж ладно
🄽🄸🄺🄸🅃🄰
Чат по гошке)
Anonymous
добрый вечер,как сделать проверку существование значения map ? как например в python #python if inputint in deflest: print (inputint)
Alexey
Очевидно, перебрать мапу
Vasily
val, exist := myMap[key]
🄽🄸🄺🄸🅃🄰
Так и хочется отредактировать чужой ответ
🄽🄸🄺🄸🅃🄰
Как на стековерфлоу
🄽🄸🄺🄸🅃🄰
Оба варианта не доделанные какие-то)))
🄽🄸🄺🄸🅃🄰
Меня не надо слушать, просто если вы не видели те две конструкции, что приведены выше, вы их сами не допишете
🄽🄸🄺🄸🅃🄰
а они обе написаны с ошибками / не дописаны
🄽🄸🄺🄸🅃🄰
но суть в них верная как направление мысли
Oleh
Ребята, не то,чтобы меня в гугле забанили,но как узнать размер слайса?
Timur
len, cap
Oleh
спасибо
Alexey
val, exist := myMap[key]
Тс спрашивал не про ключ
Anonymous
Тс спрашивал не про ключ
ой ёёёёё да, действительно, я спрашивал про вхождение по значению проще говоря есть это значение в мапе или нет
Alexey
Так перебери мапу, в чем проблема то?
🍗
Вижу много на го есть фреймворков под веб, какие можете порекомендовать ? Хотя я не думаю что это хорошая практика юзая го юзать и фреймворки.
Alexei
echo
Alexei
fasthttp
ainu
https://t.co/QS1AeOF0Wq?amp=1 вот обзор
ainu
Ещё gramework есть если надо быстро и готов смириться что это пока beta и что-то может не работать
кот Гоша
macaron
Vladislav
Iris
Уууу. Не надо.
ainu
Уууу. Не надо.
А че не так с ним?
Vladislav
Автор не очень. Миллион раз уже обсасывалось.
Ilya
Автор присваивает патчи, бенчмарки используют кеш и т.п.
Slava
echo
смотрю вот на echo и gin и что-то вообще между ними разницы увидеть не могу. поясните, пожалуйста, в чем их отличия?
Hopf
gin дерьмо редкостнейшее один только корявый роутер чего стоит
А можно поподробнее почему джин дерьмо? В нашей компании используется и вроде норм
Kirill
Просто у кого-то руки слегка ниже плеч растут, вот и всё
Bogdan
А можно поподробнее почему джин дерьмо? В нашей компании используется и вроде норм
давай начну с роутера и, в целом, можно и закончить) Это аврал) Для него /instances/count и /instances/:id - один и тот же путь, при том что заданы разные
Bogdan
Собственно, а почему они должны быть разные ?))
собственно потому, что заданы отдельным хэндлерам и первый прописан жестко, без переменных я на яве, на ноде писал бэкенды - нигде не сталкивался с такой херней, а тут приветики епта
Anonymous
Вполне логично 😁
Bogdan
еще, конечно, не хватает валидации параметров регуляркой прямо в переменной пути что то вроде /instances/:id([0-9]+)
Bogdan
И чо ?) Пути то одиннаковые в целом, вот твой :id и сожрал count
ты мне втираешь какую то дичь) Мне нахер в это лезть? Я беру фреймворк, что бы решать свои вопросы, а не городить костыли вокруг его корявости)))
Bogdan
и если я задаю отдельные хэндлеры для /instances/count и /instances/:id, а он не обрабатывает такое - то где тут корявость то моя?)
Bogdan
чет на echo я с таким не столкнулся
Anonymous
и если я задаю отдельные хэндлеры для /instances/count и /instances/:id, а он не обрабатывает такое - то где тут корявость то моя?)
ИМХО, конечно, но вешать на один путь явный endpoint и параметр который его перекрывает - не очень хорошо :)
Bogdan
ИМХО, конечно, но вешать на один путь явный endpoint и параметр который его перекрывает - не очень хорошо :)
так то да обычно я к этому добавлял валидацию в переменную пути на ноде, но тут такого нету( Потому приходится в методе контроллера дополнительно конвертировать в int ну и плевать 400, если не int мне пришел
Anatoliy
Народ, можете подсказать где я накосячил? Использую макарон Вот что дергаю: func CreateUser(ctx *context.Context, errs binding.Errors, u *models.User) { Вот так стартую сам макарон: m := macaron.New() m.Use(macaron.Logger()) m.Use(macaron.Renderer()) m.Use(context.Contexter()) m.Group("", func() { ... m.Post("/", binding.Json(models.User{}), controllers.CreateUser) // Создание пользователя ... m.Run() Сам контекстер: type Context struct { *macaron.Context } func Contexter() macaron.Handler { return func(ctx *macaron.Context) { c := &Context{ Context: ctx, } c.Data["PageStartTime"] = time.Now() ctx.Map(c) } } При попытке дернуть метод на создание пользователя - паника
ainu
в iris все клево в этом плане
Anatoliy
это стандартный макароновский
Bogdan
какая то дичь :)
Bogdan
что за паника?
Anatoliy
что за паника?
https://pastebin.com/raw/UwsnxjPa
Bogdan
попробуй передавать ссылку в binding.Json
Anatoliy
через & ?
Bogdan
да
Anatoliy
тоже паника
Bogdan
ошибка та же?
Anatoliy
ошибка та же?
https://pastebin.com/raw/zc9MEqkY
Anonymous
2017/12/22 11:00:07 http: panic serving 127.0.0.1:59358: Value not found for type *models.User
Anonymous
что-то ему в твоей модели не понравилось :)
Anatoliy
я понял, щас покажу модель
Anatoliy
что-то ему в твоей модели не понравилось :)
type User struct { UserID int `json:"user_id,omitempty" xorm:"user_id pk autoincr default not null"` Username string `json:"username" xorm:"NOT NULL"` Password string `json:"password" xorm:"NOT NULL"` Admin bool `json:"admin,omitempty"` Email string `json:"email" xorm:"VARCHAR(64) NOT NULL"` Banned bool `json:"banned,omitempty"` CreatedAt time.Time `json:"created_at,omitempty" xorm:"-"` CreatedAtUnix int64 `json:"created_at_unix,omitempty"` UpdatedAt time.Time `json:"updated_at,omitempty" xorm:"-"` UpdatedAtUnix int64 `json:"updated_at_unix,omitempty"` RefreshToken uuid.UUID `json:"refreshToken,omitempty"` Rands string `json:"rands,omitempty" xorm:"VARCHAR(10)"` Salt string `json:"salt,omitempty" xorm:"VARCHAR(10)"` // Avatar Avatar string `json:"avatar,omitempty" xorm:"VARCHAR(2048) NOT NULL"` AvatarEmail string `json:"avatar_email,omitempty" xorm:"VARCHAR(64) NOT NULL"` }
Anonymous
я понял, щас покажу модель
Глянул исходники. Треш ... сплошная рефлексия
Anonymous
Пальцем в небо - попробуй в CreateUser принимать свою модель по значению, а не по указателю