
Алексей
03.09.2017
12:57:58

Den
03.09.2017
12:59:08
Литеиде?

Алексей
03.09.2017
12:59:13
да

?
03.09.2017
12:59:13
+

Google

Sergey
03.09.2017
13:06:10

Oleksandr
03.09.2017
13:06:27
intellj, при всех плюсах, жрет кучу памяти и часто подлагивает

Sergey
03.09.2017
13:07:29

Алексей
03.09.2017
13:21:48

Max
03.09.2017
15:14:13
кто работал с blueprint? проблема с реализацией API: POST request end us with an error "Template Parse Error: read /: is a directory"
не могу починить уже долго

Dmitri
03.09.2017
15:16:50
В слайсах порядок при итерировании гарантирован?

Alex
03.09.2017
15:18:12

Akmurat
03.09.2017
15:36:29
Она на русском языке?

?
03.09.2017
15:37:25
Нет

Dmitri
03.09.2017
15:38:12
Ребят, делаю dialog = append(dialog, &QandA{nextId, " "}) , но в дебагере вижу dialog#15, а нужная мне переменная dialog остается неизменной:

Google

Dmitri
03.09.2017
15:38:32
Как это и решить и что это вообще

bebebe
03.09.2017
15:53:22
хм, что то я втупилваю
data := make(map[string][2]int);
вопрос:
каким способом мне сначала заполнить числом 41 последний элемент в массиве по ключу "foobar", а затем заполнить первый элемент?
что-то в духе:
data["foobar"][1] = 41;
data["foobar"][0] = 42;но получаю ошибку
cannot assign to data["foobar"][1]
cannot assign to data["foobar"][0]
в чем я не прав?
вот так оно работает:
data["foobar"] = [2]int{41,42}
но мне нужно заполнить первый элемент в одном куске кода, другой элемент в другом

Dmitri
03.09.2017
16:02:12
Если я из мапы беру слайс dialog := pendingDialogs[update.Message.From.ID] мне же дадут ссылку?

bebebe
03.09.2017
16:05:17
Go's arrays are values. An array variable denotes the entire array; it is not a pointer to the first array element (as would be the case in C). This means that when you assign or pass around an array value you will make a copy of its contents. (To avoid the copy you could pass a pointer to the array, but then that's a pointer to an array, not an array.) One way to think about arrays is as a sort of struct but with indexed rather than named fields: a fixed-size composite value.ясно понятно

Grigoriy
03.09.2017
16:35:04
Возможно, глупый вопрос, но я еще только знакомлюсь с Go.
» This means that when you assign or pass around an array value you will make a copy of its contents.
То есть это означает, что при использовании:
a := make([]float64, len(arr))
for i, val := range arr {
last = (val * k)
a[i] = last
}
у меня на каждое присваивание a[i] создается по копии массива?

Daniel
03.09.2017
16:35:38
Нет, конечно

Grigoriy
03.09.2017
16:36:25
Спасибо. Перебдел)

Dmitri
03.09.2017
16:43:18
Создаю слайс и ложу его в мапу:
dialog := make([]*QandA, 0)
dialog = append(dialog, &QandA{0, " "}) pendingDialogs[update.Message.From.ID] = dialog
Достаю слайс из мапы
dialog := pendingDialogs[update.Message.From.ID]
Дальше добавляю туда елемент
dialog = append(dialog, &QandA{nextId, " "})
Но dialog остается таким же. Типа ничего не добавил.
Пробовал сделать так:
sl := append(dialog, &QandA{nextId, " "})
dialog = sl
В sl добавилось, dialog остался таким же, присваивание типа проигнорировано. Что не так?

bgnfu7re
03.09.2017
17:01:41
Непонятно зачем слайс указателей, но все то. Пример кода можно?
https://play.golang.org/p/kjPRXY2gcB

Dmitri
03.09.2017
17:08:22

Sergey
03.09.2017
17:08:24

bgnfu7re
03.09.2017
17:12:03
какая именно строчка падает с nil?

Sergey
03.09.2017
17:12:36
там одни инсерты nil нет

Sergey
03.09.2017
17:13:00
61
строка

bgnfu7re
03.09.2017
17:13:30
С плей-голанга, какая строка? 61 это комментарий
а не, туплю, сорьки

Google

Sergey
03.09.2017
17:13:50
extension, err := db.Exec("INSERT INTO dialplan_extension (context_id, name, weight) VALUES (3,?,30)",description)
вот это вообще выполняется?
там нету чека ошибки

Sergey
03.09.2017
17:15:10
спасибо затупил ошибка в запросе
спасибо за помошь

Sergey
03.09.2017
17:15:29
пожалуйста
ошибки все проверяй
56 просто exec
дальше не проверяешь
потом проверяешь
ты так устанешь ошибки ловить

Dmitri
03.09.2017
17:16:07
может это потому что я ссылаюсь туда в lastQA?

bgnfu7re
03.09.2017
17:22:10
возможно
читаю

Dmitri
03.09.2017
17:22:43
я могу расписать суть кода что бы тебе понятнее стало
присылаем боту /start - в мапе (айдишники юзеров) создается массив с объектами QandA (вопрос-ответ), там бот хранит диалог с юзером
далее юзер шлет ответ, бот берет последний QandA и заполняет в нем ответ. Далее создает в слайсе новый QandA и так далее

bgnfu7re
03.09.2017
17:31:40
как ты определяешь, что диалог не изменился? мб я тупой, но воспроизвести твоего поведения я не могу. Наиболее очевидный вариант что ты что-то не оттуда берешь (или не туда присваиваешь), но я пока не вижу что

Google

bgnfu7re
03.09.2017
17:31:41
https://play.golang.org/p/tf5YsFXvs2

Dmitri
03.09.2017
17:32:13
до этого я вместо слайса имел мапу. Но потом понял что нахрена мапа, если просто слайс надо
тогда всё работало
со слайсом перестало
всмыысле "изменился"?

bgnfu7re
03.09.2017
17:33:13
> Но dialog остается таким же. Типа ничего не добавил.

Dmitri
03.09.2017
17:33:32
брейкпоинтом
делаю kek := append dialog...
dialog = kek
диалог не присваивает kek
при этом в Variables вижу какой-то dialog#15 и там все добавилось
но в мою переменную нет

Oleksandr
03.09.2017
17:39:24
Вопрос немного не про Go, но всё же.
Читаю книгу Донована "Язык программирования Go" на английском.
Читаю медленно, со словарем, периодически в него поглядывая (примерно слово на страницу).
Лучше читать на английском языке, но медленно, или на русском, но вникнуть быстро и приступить к делу?

Artem
03.09.2017
17:41:01

Denis
03.09.2017
17:41:59

Artem
03.09.2017
17:42:22

Denis
03.09.2017
17:42:24
тип за двумя зайцами хуево бегать

Sergey
03.09.2017
17:48:31

Denis
03.09.2017
17:56:59

Sergey
03.09.2017
17:57:58
Имхо начни с книги перевода и дочитай англ потом

Dmitri
03.09.2017
18:00:13
Есть у кого-то бестпрактисес по боту на go? У меня огромная main с обработкой апдейтов и не могу понять как это все раскидать по функциям

Google

Sergey
03.09.2017
18:00:55
Но не прям бест

Dmitri
03.09.2017
18:01:11
А покажите?

Sergey
03.09.2017
18:01:47
Сюда вообще можно свои репо слать?
https://github.com/LikiPiki/golang-mayner-game/blob/master/README.md
Ща его не потестишь но код есть

Dmitri
03.09.2017
18:02:31
Спасибо, смотрю

Sergey
03.09.2017
18:06:59
Ну а почему бы и нет
Они выполнились и умерли

Dmitri
03.09.2017
18:07:20
а почему ты не выбрал путь просто вызывать их

Sergey
03.09.2017
18:07:46
Так ты запускаешь горутину паралельно и берешь новый месседж или колбек сразу

Dmitri
03.09.2017
18:07:56
Хм...

Sergey
03.09.2017
18:08:03
А так выполняешь всю функцию и берешь новый месседж

Dmitri
03.09.2017
18:08:12
Неплохо

Sergey
03.09.2017
18:08:41
Если к бд много запросов то шустрее работает

Pauline
03.09.2017
18:10:46

anton
03.09.2017
18:11:11

Dmitri
03.09.2017
18:12:12

Alexey
03.09.2017
19:05:03

Pauline
03.09.2017
19:05:40