Andrey
Andrey
есть раст, например
Andrey
Andrey
А питон еще проще!
Andrey
ну а с пхп по простоте вообще никто не сравнится
Artem
Может мне и append самому реализовать? )) это же примитивная задача
поскольку я не решаю ничего в мире golang, вам лучше обсудить это с тем, кто имеет влияние на внутреннее устройство и способен изменить философию Go, мне просто это нравится и то, как все устроенно вызывает восхищение и доставляет удовольствие. Мне платят за код на 7 ЯП, только от Golang я получаю удовольствие.
Artem
это синтаксис... 🤦♂️ неужели он имеет значение...
Vsevolod
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
Anonymous
Anonymous
Но это не отменяет факта, что Роб так решил.
Artem
Anonymous
𝒦𝒶𝓁𝒶𝓎⛩
Artem
потому, что в интерфейсе реализован String? ну и как бы println это другая функция, но вообще это просто предположение и то, чего я бы ожидал, как оно на самом деле хз, я так никогда не делал )
𝒦𝒶𝓁𝒶𝓎⛩
Artem
Sprintf же интерфейс принимает нужно просто поискать что он ожидает внутри
𝒦𝒶𝓁𝒶𝓎⛩
func Sprintf(format string, a ...interface{}) string {
Мерль
Artem
нужно реализацию смотреть, может быть проблема в том, что функция возвращает именованные значения и на разборе что то падает
Artem
а вообще ты же там наверно error возвращаешь, и разные типы в слайс попадают на разборе, посмотри что внутри Sprintf вызывается
𝒦𝒶𝓁𝒶𝓎⛩
Anonymous
Anonymous
Artem
проще пойти с слак спросить чем разбираться в ванга режиме )) ща попробую
Мерль
𝒦𝒶𝓁𝒶𝓎⛩
func GetDB() (user, pass, name string) {
return cf.dbUser, cf.dbPass, cf.dbName
}
fmt.Println(fmt.Sprintf("%s:%s:%s",GetDB()...))
𝒦𝒶𝓁𝒶𝓎⛩
Anonymous
𝒦𝒶𝓁𝒶𝓎⛩
yt hf,jnftn
𝒦𝒶𝓁𝒶𝓎⛩
не работает
Artem
𝒦𝒶𝓁𝒶𝓎⛩
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{} ?
Andrey
Andrei 🦉
я хотел бы хотя бы через кодогенерацию, иначе это скатывается в пародию на скриптовые языки
Oleg
все типизации немного утиные
Anonymous
Alex
ООП головного мозга
Vergil
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
Anonymous
Сначала просто объяви тип. А в инициализации уже создай бота.
Anonymous
Artem
Michael
так по строчке и напишем человеку бота