Maks
а ну да)
Grigorij
named return, https://go.dev/tour/basics/7
Dilame
Значит, моё ощущение меня не подвело – это действительно должно быть написано иначе. Всем спасибо!
Maks
Не должно)
Maks
Это все индивидуально)
Юра (Юрий Александрович)
С другой стороны, так в каждом return ты явно видишь, что ты возвращаешь. Если же у тебя будут именованные параметры, то в момент вызова return (а моментов этих несколько), сходу не будет видно и понятно, какие значения переменных ты возвращаешь. Т.е. в том варианте, который сейчас, строчка return несет в себе почти всю информацию для понимания того, что вернется вызвавшему коду. Если использовать именованные параметры, то нужно будет просматривать весь вышестоящий кусок кода, чтобы понять, какие значения переменных вернутся.
Юра (Юрий Александрович)
Нынешний вариант, хоть и кажется многословным, зато является логичным для чтения и понимания.
Юра (Юрий Александрович)
и точно можно будет быть уверенным, что вызывающий код не начнет что-то делать с этими недоделанными конекшенами, не сохранит их куда-нибудь и не устроит утечку ресурсов на ровном месте
Nikhil
in the go files when we get an error like the no. of characters exceeded the limit we use //nolint:lll to ignore the error but when we get the same error in go templates, how can we handle it? Like this is the statement in the go templates which is giving me error: Conditions []metav1.Condition + "`" + json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions" + "`" + How can we do that? Help needed.
Null
Как начать карьеру в Go-разработке? Узнайте на вебинаре. → Бесплатно, 15 июля в 19:00 Поговорим, как пройти путь от от junior-разработчика до тимлида, с каким бекграундом реально освоить язык и какие технологии изучить, чтобы найти работу. Беседовать будем с экспертами: ◾️ Рафаэль Мустафин, тимлид в Delivery Club. Прошёл путь от написания приложений под Windows до разработки бэкенд-сервисов на Go. Обучает стажёров. ◾️ Алексей Мясников, старший разработчик в Яндекс Облаке. В IT с 2006 года. Писал код более чем на 20 языках программирования, больше всего — на C++, Java, Go, TypeScript. ◾️ Егор Середа, Golang Engineer в израильском стартапе Scribe Security. Выпускник курса «Go-разработчик». В прошлом году перешёл на Go после трёх лет Android-разработки. Что будет на вебинаре? — Обсудим, как перейти на Go-разработку с другого языка и как преодолеть трудности. — Разберем скиллы, стек технологий, фреймворки и инструменты современного Go-разработчика. — Обсудим, как выбрать лучший момент для перехода на Go. Разберем ситуации, когда стоит и не стоит переходить на Go c вашим стеком. — Спикеры расскажут, как дорасти до позиции сеньора, на своём опыте. — Выпускники курса Практикума «Go-разработчик» расскажут об учёбе и поиске работы. → Зарегистрироваться на вебинар
Nikhil
1) this is not an error, just linter warning 2) use strings.Builder
Could you please give me an example with this statement. This is a statement declaring a field inside a struct in a go template. Conditions []metav1.Condition + "`" + `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions" + "`" + `
la4z
каким образом proto'ку сказать что прото файлы лежат на гитхабе?
la4z
задача сгенерить их оттуда
Raniqubihe
Прохожусь по элементам массива беру первые символы строк. Получаю кракозябрв
Raniqubihe
[ААааа ммм яяя] Ð Ð Ñ
Raniqubihe
Как русские буквы вывести?
Илья
for _, letter := range string
Maks
А если тебе нужно только первую букву взять?
Raniqubihe
Да
Maks
ну вообще если ты знаешь что там строка русская то тебе нужно брать сразу два байта
Maks
а не один
Иван
а если китайская то 3 или 4
Иван
а если эмодзи
Maks
а дай китайскую руну какую нить
Иван
動漫搖滾
Maks
string([]rune(s)[0])
Maks
держи)
Илья
string([]rune(s)[0])
оптимизация покинула чат
Maks
приходится выбирать)
NU
всем привет, как Bash команды впихнуть внутрь go? чтобы при исполнении go файл внутри линукса сразу выполнялся как обычный bash скрипт
NU
это сейчас актуально ? go DoCmd("КОМАНДА")
Maks
Зачем так делать
Maks
Это все крайние случаи
NU
а как
NU
подскажи плз свой best practice или ссылочку на инфу, заранее благодарен
Илья
а как
использовать пакет exec?
NU
типа так?
NU
package main import ( "fmt" "log" "os/exec" ) func main() { out, err := exec.Command("date").Output() if err != nil { log.Fatal(err) } fmt.Printf("The date is %s\n", out) }
Maks
Вопрос в первую очередь в задаче. Что ты хочешь сделать. Чаще всего можно тоже самое сделать на го.
Maks
Что бы приложение работало на любой системе
NU
Да, мне главное просто баш скрипт переписать на го, закинуть его бинарник в линукс
Victor
переписать скрипт - это заюзать его внутри го ?:)
Иван
ну дык перепиши
Иван
чото такое https://dev.to/napicella/linux-pipes-in-golang-2e8j
NU
Спасибо за инфу ребята
NU
Я вообще новичок и не шарю
Kaban4ik
Добрый день. Не могу понять следующий вопрос, нужна помощь новичку в Go. Есть следующая структура ctx := map[string]interface{}{ "name": "Github User", "nameHeader": "Item name", "items": []map[string]interface{}{ { "name": "Pen", "quantity": 2, }, { "name": "Pencil", "quantity": 1, }, }, } Как добавить в «items» новый элемент "name" и "quantity"?
Sergey
Создаёте сначала структуру item := map[string]interface{} { "name": "... ", "quantity": ..., } Потом "аппендите" этот элемент к items ctx["items"] = append(ctx["items"], item) p.s. если вы такую структуру написали, я бы посоветовал вам язык с динамическими типами, такие вещи в go следует использовать, только если вас держат в заложниках p.p.s. исправил, спасибо следующему, кто ответил
Kaban4ik
https://go.dev/play/p/170JsRk7zrg
Спасибо огромное
Grigory
https://go.dev/play/p/170JsRk7zrg
но это если прям применительно к конкретной структуре этой, иначе нужно еще проверками обмазывать при касте из интерфейса пустого в массив мап
Victor
интересно, я не сталкивался именно с массивом мап, где каждая мапа содержит лишь одну запись.
Grigory
интересно, я не сталкивался именно с массивом мап, где каждая мапа содержит лишь одну запись.
это кейс когда нужно уметь работать с json у которого формат не задан строго
Sergey
кстати такой кейс может быть валиден, когда нужно уметь работать с динамическим входом, у меня в практике такое было разок
Только когда нет выбора, эта "универсальность" убивает надёжность, читабельность и обычно говорит о том, что человек привык к плюшкам "динамических" языков, тащить это в "статику" - не лучшее решение
Grigory
Только когда нет выбора, эта "универсальность" убивает надёжность, читабельность и обычно говорит о том, что человек привык к плюшкам "динамических" языков, тащить это в "статику" - не лучшее решение
не всегда, касательно моего кейса, где это нужно было - сервис-шаблонизатор, который из хранилища черпал гошные шаблоны и генерил текст по параметрам, которые приходили на вход
Sergey
не всегда, касательно моего кейса, где это нужно было - сервис-шаблонизатор, который из хранилища черпал гошные шаблоны и генерил текст по параметрам, которые приходили на вход
Не буду говорить: наверняка это можно было решить без интерфейсов)) задачи бывают разные, единственное, сначала стараюсь сделать статикой, пустые интерфейсы - это уже "молоток", который вколотит любой "шуруп"
Victor
это кейс когда нужно уметь работать с json у которого формат не задан строго
да, интересно. Надо предусматривать различные параметры, которые могут быть в json
Grigory
Не буду говорить: наверняка это можно было решить без интерфейсов)) задачи бывают разные, единственное, сначала стараюсь сделать статикой, пустые интерфейсы - это уже "молоток", который вколотит любой "шуруп"
да я не спорю, мой месседж скорее про то, что есть такие кейсы, где это оправдано, но конечно же они супер редкие и лучше такое стороной обходить
Victor
тут наверное больше в обучающих целях такое задание :)
Grigory
да, это как с оружием у полиции. инструмент есть, пользоваться уметь нужно, но применять стоит в крайних случаях)
Kaban4ik
Просто решил использовать вот эту библиотеку для заполнения шаблонов Excel https://ivahaev.ru/go-xlsx-templater/, пока лучше не чего не нашел
David
кто то знает, как правильно реализовать jwt auth с использованием grpc? Не могу ничего годного найти почитать, может у кого есть инфа?
Илья
что
Null
что
David
спасибо
David
имел ввиду как правильно хранить токены и тд) книгу уже скинули по грпс, вроде там описано
Vitaly
кто-нибудь хочет совместно вести телеграм канал по полезным кускам кода на Go? решил, во время работы много чего интересного находится что хочется потом использовать снова. обычно складирую это в закладках браузера или пытаюсь так запомнить. но собирать это в телеге будет прикольнее. тем более если удастся вместе с кем-нибудь это вести
Serj Pyhar
ну и в телегу скидывать\
Serj Pyhar
с блога
David
подскажите пожалуйста, как такая конструкция называется?