Anonymous
Только fmt.Print заменяй, т.к. Println новую строку создал, назад не вернуться
🍗
в смысле так ?
fmt.Print("Text #1")
fmt.Printf("Замена на текст 2")
Dmitrii
fmt.Print("Text #1")
fmt.Printf("\rЗамена на текст 2")
🍗
Лайк...))) Расширю вопрос, если строка к примеру "Вас приветствует Дима" и только заменять Диму заменять на Настю, Петю, Васю ?
Dmitrii
func main() {
s := []string{"Петя", "Вася", "Катя"}
for _, v := range s {
fmt.Printf("\rВас приветствует %s", v)
time.Sleep(time.Second)
}
}
🍗
Спасибо, я понял как это делают, предпологал можно что-то типо меток ставить %v таких, и их изменять без циклов.
Serhii
Есть массив структура которая возвращается одной sdk либой, в каждом элементе массива присутствует очень много полей, с каких мне надо только два, как правильно выбрать эти поля и загнать в аналогичную структурку чтоб отобразить потом? Вижу только вариантом перебора через for, но может есть другие пути?
Anonymous
Serhii
Serhii
И еще вопрос, в мире ноды на проде я держал процесс с помощью pm2, как это правильно делать в мире го?)
Anonymous
Serhii
Не так сказал, как правильно держать скомпиленный бинарник в запущенном состоянии и в случае краша перезапускать
Serhii
Т.е неубиваемый пррцесс
Anonymous
Эээ, ну у меня systemd перезапускает сервисы
Anonymous
А сейчас же мода всё в докер пихать, там хз чо
Serhii
Да я пока не вижу смысла в докер
Daniel
А он есть
Zloy-Dobry
Zloy-Dobry
А ответ на твой вопрос, нет. Пм2 пусть отстается в том миру где его сделали.
Zloy-Dobry
Для процсесс менеджмента своего бинаря используй нативные средства своей ос
Serhii
Ok ok)
Serhii
Привычка же
Anatoliy
Alexander
https://go-macaron.com/docs/middlewares/binding
Alexander
????
Anatoliy
????
читал, смотрел.
но там идет простая функция:
m.Post("/", binding.MultipartForm(UploadForm{}), uploadHandler(uf UploadForm) string {
у меня же там идет вот такое.
handlerStruct := &controller.TokenHandler{
SecretKey: []byte(KEY_SECRET),
DBConn: db,
}
m.Post("/", binding.Json(controller.User{}), handlerStruct.CreateUser)
func (h *TokenHandler) CreateUser(c *macaron.Context) {
и как отдать кроме контекста в функцию еще и самого пользователя - я пока тупо не понимаю. видимо что-то упускаю(
Alexander
https://github.com/james2doyle/macaron-example/blob/master/main.go
Alexander
там пример есть
Alexander
m.Post("/contact/submit", binding.Bind(ContactForm{}), mySubmitHandler)
Alexander
func mySubmitHandler(ctx *macaron.Context, contact ContactForm) {
Anatoliy
эм.. т.е. вот так просто?
func (h *TokenHandler) CreateUser(c *macaron.Context, user User) {
?
и не надо ничего дописывать в
m.Post("/", binding.Json(controller.User{}), handlerStruct.CreateUser)
?
Anatoliy
Мда... действительно туплю получается(
Alexander
я макароном не пользовался я не знаю)
Alexander
написано, что д
Андрей
доброго времени суток, народ подскажите чтонить интересное библиотечку для console.ui надо под хостинг несколько задач автоматизировать, хотелось бы удобство использования чтоб было
Anonymous
Андрей
а как с интерактивностью?
Андрей
у нее
Андрей
мне надо наклепать текстовую менюшку для быстрого развертывания нескольких конфигов... в виде текстового и списка и интерактивного перехода по нему
Андрей
Рубикон
Всем вечера
Рубикон
Не подскажите дистрибьютив Линукс, чтобы минимальный и только для запуска golang приложения под 32 бита?
Roman
Alpine
Roman
Я не уверен на счет 32 бит правда
Roman
Есть вроде поддержка 32
Roman
https://alpinelinux.org/downloads/
Рубикон
Таки есть
Vasily
из нюансов alpine - там с -race не сбирается
Vasily
вдруг это тайное знание пригодится
Рубикон
Vasily
это рейс-детектор, опция при компиляции и тестирования
он требует там gcc и ещё какого-то плюсового кода
если это не используется - можно забыть
Roman
В общем для прода норм
Рубикон
Благодарю
Anatoliy
Может кто подсказать?
У меня есть хендлер, я в нем выполняю некоторые операции и теперь мне надо вернуть ответ. Это может быть как сообщение об ошибке, так и корректный ответ. Но писать везде - не радует. Я бы хотел иметь возможность или отправлять нужные данные через return или вызывать некий метод который бы их принимал. Но ему надо каждый раз отправлять контекст что бы этот самый метод мог отправить сам ответ сервера. Вопрос - как его можно всегда туда отправлять?
Anatoliy
Хочется чего то такого:
func (h *TokenHandler) CreateUser(c *macaron.Context, errs binding.Errors, user model.User) (map[string]interface{}, binding.Errors, int) {
Write(c, nil, errs, 500)
return
или просто
return nil errs, 500
сам Write вот такой, и ему хочется не отправлять каждый раз напрямую контекст
func Write(c *macaron.Context, res map[string]interface{}, errs binding.Errors, port int) {
result := Result{
Result: res,
Errors: errs,
}
c.JSON(port, result)
}
Ну и сама обработка вот такая:
m.Post("/", binding.Json(model.User{}), handlerStruct.CreateUser)
т.е. либо привести к виду что-то вроде
m.Post("/", binding.Json(model.User{}), handlerStruct.CreateUser, controller.Write)
и в самом CreateUser просто отправлять данные дальше что бы их мог получить Write, либо вызывать этот Write внутри CreateUser и при этом отправлять данные оттуда. Но - не прописывать каждый раз контекст
Anatoliy
У меня есть подозрение что я где то как-то умудрился запутаться, но как - не понимаю пока(
Максим
Anatoliy
Эм.. как?
Anatoliy
хотя вроде понял, щас попробую
Максим
func (c *Context) Write(){}
Anatoliy
судя по всему нельзя, по крайне мере не получается
Anatoliy
ну в общем пока не заработало, буду думать дальше
Максим
Прошу прошения.
Anatoliy
Да ничего страшного, это мне тут впору прощения просить, то по одному вопросу всех дергаю, то по другому. И в итоге опять окажется что что-то я где-то просто пропустил(
Anonymous
Всем привет. Странный вопрос, и не реклама. Возникла идея записать обучающий видеокурс по го для продолжающих. В процессе на примере построения системы автоматизации средней руки магазина рассказывается о паттернах проектирования, тестировании, и других моментах разработки. Будет кому интересно?
Aleksandr
конечно
Anatoliy
Andrei 🦉
@Visteras судя по всему никак, куцый синтаксис golang приводит к дикому количеству boilerplate в кодовой базе, официально подобное рекомендуется делать через кодогенерацию
Андрей
Вопросик, а go in action у кого-то есть перевод?
Андрей
или Go in Practice
Irina
Irina
хотя мне книга или большой туториал интереснее были бы, чем видеокурс
Андрей
Irina
ну это понятно, просто напоминаю что текстовую версию было бы тоже приятно иметь
朝の日差し ✙
florius0