Anonymous
или вам что -то мешает обернуть append своим личным delete один раз?
Может мне и append самому реализовать? )) это же примитивная задача
Andrey
есть раст, например
Artem
Можно что угодно :) но это отнимает время :(
у вас отнимает время написание 1 строчки ? т.е. вы из тех, кто учит программированию начиная с быстрого набора текста?
Anonymous
а нафига вы на го вообще пишите?
Я пишу на Go, потому что это язык для такого дубового программера, как я ))
Andrey
А питон еще проще!
Roman
Выразительность - это когда из слайда удалить элемент можно методом Delete, а не append'ом.
зато через append ты видишь, что удаление нифига не дешево, и остается занятая, но неиспользуемая память. иллюзия delete в том, что кажется что память высвободилась
Andrey
ну а с пхп по простоте вообще никто не сравнится
Anonymous
Раст не сложнее, кстати)
Ага, я как увидел конкатенацию строк, передумал его тыкать.
Artem
Может мне и append самому реализовать? )) это же примитивная задача
поскольку я не решаю ничего в мире golang, вам лучше обсудить это с тем, кто имеет влияние на внутреннее устройство и способен изменить философию Go, мне просто это нравится и то, как все устроенно вызывает восхищение и доставляет удовольствие. Мне платят за код на 7 ЯП, только от Golang я получаю удовольствие.
Andrey
Ага, я как увидел конкатенацию строк, передумал его тыкать.
У меня, кстати, такая же проблема. Если страшно или сложно - то сразу отказываюсь. Но, если пересилить себя, можно многому научится. И понять почему где-то сделано именно так, а не иначе.
Roman
Может мне и append самому реализовать? )) это же примитивная задача
в книге Донована все начинается с ее написания и разбора подводных камней. я впечатлился
Artem
это синтаксис... 🤦‍♂️ неужели он имеет значение...
Artem
тогда просто почитайте почему так и примите решение нравится вам это или лучше идти в питон сразу. Ничего не изменится
Anonymous
Если каждый программер потратит сколько то времени на то, что в базовом функционале нет, в сумме может получится много убитого времени ))
𝒦𝒶𝓁𝒶𝓎⛩
Бан ему кинте, что бы не мешал
Artem
каждый программер от силы 3-4 часа в день пишет код. Тему того, что написать функцию -это долго, сложно и т.д. я даже обсуждать не хочу, это идиотизм.
𝒦𝒶𝓁𝒶𝓎⛩
лучше мне объясните почему a,s,d:=GetDB() fmt.Println(fmt.Sprintf("%s:%s:%s",a,s,d)) //Работает fmt.Println(fmt.Sprintf("%s:%s:%s",GetDB())) //Yt hf,jnftn
𝒦𝒶𝓁𝒶𝓎⛩
*//не работает
𝒦𝒶𝓁𝒶𝓎⛩
Так Роб решил.
Тебя уже ни кто не слушает
Anonymous
Но это не отменяет факта, что Роб так решил.
Artem
лучше мне объясните почему a,s,d:=GetDB() fmt.Println(fmt.Sprintf("%s:%s:%s",a,s,d)) //Работает fmt.Println(fmt.Sprintf("%s:%s:%s",GetDB())) //Yt hf,jnftn
вызываемые значения должны быть присвоенны, функции из fmt этого делать не умеют. В итоге функция просто вызывается не правильно и будет ошибка вроде multiple-value
Artem
потому, что в интерфейсе реализован String? ну и как бы println это другая функция, но вообще это просто предположение и то, чего я бы ожидал, как оно на самом деле хз, я так никогда не делал )
𝒦𝒶𝓁𝒶𝓎⛩
Artem
Sprintf же интерфейс принимает нужно просто поискать что он ожидает внутри
𝒦𝒶𝓁𝒶𝓎⛩
func Sprintf(format string, a ...interface{}) string {
Artem
нужно реализацию смотреть, может быть проблема в том, что функция возвращает именованные значения и на разборе что то падает
Artem
а вообще ты же там наверно error возвращаешь, и разные типы в слайс попадают на разборе, посмотри что внутри Sprintf вызывается
Artem
проще пойти с слак спросить чем разбираться в ванга режиме )) ща попробую
Artem
Это точно не причина, т.к. Println работает на любых типах и их количествах. )
Println не имеет значения же разбор в Sprintf и она может ошибку вернуть, но там строки и потому это явно мимо было
𝒦𝒶𝓁𝒶𝓎⛩
func GetDB() (user, pass, name string) { return cf.dbUser, cf.dbPass, cf.dbName } fmt.Println(fmt.Sprintf("%s:%s:%s",GetDB()...))
𝒦𝒶𝓁𝒶𝓎⛩
Anonymous
func GetDB() (user, pass, name string) { return cf.dbUser, cf.dbPass, cf.dbName } fmt.Println(fmt.Sprintf("%s:%s:%s",GetDB()...))
Придумал. Возвращай в GetDBP []string, тогда будет работать ))
𝒦𝒶𝓁𝒶𝓎⛩
yt hf,jnftn
𝒦𝒶𝓁𝒶𝓎⛩
не работает
𝒦𝒶𝓁𝒶𝓎⛩
Anonymous
А, точно. возвращать []interface{} предлагать не буду 😃 (хотя с ним точно работает)
𝒦𝒶𝓁𝒶𝓎⛩
А блин работает
𝒦𝒶𝓁𝒶𝓎⛩
забыл
𝒦𝒶𝓁𝒶𝓎⛩
в функции поменять возврат
𝒦𝒶𝓁𝒶𝓎⛩
Спсибо
Artem
а че, попробуй свою строку привести t := []string{'a', 'b', 'c'} s := make([]interface{}, len(t)) for i, v := range t { s[i] = v } :)
Anonymous
Всё таки структура красивше, чем возвращать массивы.
Artem
это хорошо, потому, что было бы странно, должно работать оно.
.
В принципе, язык то хорош, и реализовать веб сервис на нем довольно таки просто без каких либо фреймворков
.
Просто действительно некоторый вещей на первый взгляд очень не хватает
Andrei 🦉
да как бы их не хватает и на второй и даже на третий взгляд
Andrei 🦉
у кого нибудь есть на примете либа с реализацией базовых алгоритмов, где в сигнатурах публичных функций отсутствует interface{} ?
Andrei 🦉
я хотел бы хотя бы через кодогенерацию, иначе это скатывается в пародию на скриптовые языки
Oleg
все типизации немного утиные
Alex
ООП головного мозга
Vergil
Mikhail
Просто действительно некоторый вещей на первый взгляд очень не хватает
Ну если не хватает, зачем пользоваться? Возьми инструмент - который решает твою задачу так, как ты хочешь. И не порти настроение окружающим)
Pawel
Прекрасное. код heap’а наркоманов https://github.com/scalaz/scalaz/blob/series/7.3.x/core/src/main/scala/scalaz/Heap.scala и здоровых людей https://golang.org/src/container/heap/heap.go Как говорится почувствуйте разницу
Anonymous
Сейчас разбираюсь с библой для телеги
Anonymous
Можно объявить бота не в функции? Чтобы можно было вызывать его из других файлов
Aleksandr
в чем проблема? первые шаги в языке читал? ошибки компиляции читаешь?
Anonymous
Сейчас у меня такой код: func sendMessage(bot *tgbotapi.BotAPI, text string) мне нужно так func sendMessage(text string)
Anonymous
Aleksandr
сделай структуру TGBot с методами необходимыми тебе
Anonymous
Сначала просто объяви тип. А в инициализации уже создай бота.
Michael
так по строчке и напишем человеку бота