
Aleksandr
11.10.2018
14:08:05

Daniel
11.10.2018
14:08:31

Aleksandr
11.10.2018
14:09:16

Дмитрий
11.10.2018
14:09:32

Google

Daniel
11.10.2018
14:09:57
тут вариантов два
то есть три, но третий - фуфло

Mykyta
11.10.2018
14:10:36

Zver
11.10.2018
14:10:39
Маршалите сами тогда.

Artem
11.10.2018
14:10:42
но корень зла у всех один

Aleksandr
11.10.2018
14:10:42

Evgeniy
11.10.2018
14:11:12
Всем привет.
https://www.ozon.ru/context/detail/id/34671680/
старая книжка или лучше свежее найти?

Aleksandr
11.10.2018
14:11:36

Daniel
11.10.2018
14:12:12
1. изменить структуру на []map[string][string]CustomStruct
2. добавить к ключам префикс вроде 00001-, чтобы они сортировались как вам хочется

Evgeniy
11.10.2018
14:12:15

Daniel
11.10.2018
14:12:33
3. костылить ordered dictionary

Дмитрий
11.10.2018
14:13:00
всем спасибо за советы.

Александр
11.10.2018
14:13:21
есть упорядочные мапы ?

Google

Александр
11.10.2018
14:13:43
на кастом типах народ развлекается
где то у меня в каком то парсере юзалось

Roman
11.10.2018
14:14:21

Daniel
11.10.2018
14:14:45
угу

Дмитрий
11.10.2018
14:16:30

Marlik
11.10.2018
14:25:17

Roman
11.10.2018
14:46:45
a := []int {1, 2, 3}
c := a[0]
c это копия?

Илья
11.10.2018
14:47:55
да

Vadim
11.10.2018
14:48:28
Чойта копия

Roman
11.10.2018
14:48:34
да
почему мы тогда можем провернуть такой прикол?
https://goplay.space/#2KBFmt9VofV

Vadim
11.10.2018
14:48:47
Это слайс
С андерлаинг аррэем

Roman
11.10.2018
14:49:26

Илья
11.10.2018
14:49:34

Vadim
11.10.2018
14:49:37

Roman
11.10.2018
14:50:53
потому, что &a[0] - это не копия
ну не, постой.. в моём понимании того как устроены операторы и коллекции в C++..
[] то это всего лишь функция, которая возвращает копию того, что нашла по индексу i

Vadim
11.10.2018
14:51:39

Roman
11.10.2018
14:51:56
следственно, если в Go это реализовано подобным путём, тогда [0] должен вернуть копию, а &[0] должен взять адрес копии, а не самого item'а

Artem
11.10.2018
14:52:07

Илья
11.10.2018
14:52:08

Google

Vadim
11.10.2018
14:52:46
Известный паттерн получения слайса из массива c := a[:]

Илья
11.10.2018
14:52:52

Roman
11.10.2018
14:53:42
или они там мудрят на уровне компиля?

Daniel
11.10.2018
14:54:11
коллега

Илья
11.10.2018
14:54:12

Roman
11.10.2018
14:54:17
и slice'ы в язык встроены ещё глубже чем я себе представлял?

Daniel
11.10.2018
14:54:19
вы о чем вообще?

Roman
11.10.2018
14:54:46
вы о чем вообще?
https://goplay.space/#2KBFmt9VofV
пытаюсь понять почему это вообще возможно

Daniel
11.10.2018
14:54:52
и в с++ [] - не функция. и возвращает не копию

Илья
11.10.2018
14:55:27

Daniel
11.10.2018
14:55:35

Roman
11.10.2018
14:56:41
и в с++ [] - не функция. и возвращает не копию
зависит от имплементации, на самом деле это overloadable function:
https://www.geeksforgeeks.org/overloading-subscript-or-array-index-operator-in-c/
// Implementation of [] operator. This function must return a
// refernce as array element can be put on left side
int &Array::operator[](int index)
{
if (index >= size)
{
cout << "Array index out of bound, exiting";
exit(0);
}
return ptr[index];
}
в данном случае [] вернёт копию инта в Array

Daniel
11.10.2018
14:57:22
стандартное поведение - не такое
(как я ненавижу c++, вы бы знали)

Нави
11.10.2018
14:59:14

Daniel
11.10.2018
14:59:33
вот за это вот все. нечитаемо же.

Илья
11.10.2018
14:59:41
потому что перегрузка операторов придумана для людей, которым нечем заняться на выходных

Roman
11.10.2018
15:02:09
вы берете указатель на элемент underlying массива, и записываете туда новое значение, что не так?
да всё так, я лишь пытаюсь понять как оно устроено.. видимо &[] это отдельный композитный оператор, ибо на первый взгляд оно выглядит как сочитание index- и reference операторов, но тогда мутации на интах должны бы были быть невозможными, потому-что & брал бы адрес копированного инта в stack'е, поскольку [] возвращает копию
но очевидно [] возвращает не копию, но даже если предположить что он возвращает указатель - всё-равно не должны бы было работать, потому-что тогда c был бы типом *int а это значит что & даст нам **int и *c = 2 вообще было бы нелегальным
выходит что тут какая-то нестандартная магия

Google

Илья
11.10.2018
15:02:47
никакой магии
как раз нет

Artem
11.10.2018
15:03:43
запили уже immut линтер

Roman
11.10.2018
15:04:23

Илья
11.10.2018
15:04:31
с const poisoning, преферансам и профурсетками

Roman
11.10.2018
15:04:59
я сейчас вообще про слайсы и их индекс оператор, не про иммутабельность)

Artem
11.10.2018
15:05:24

Admin
ERROR: S client not available

Roman
11.10.2018
15:06:17
никакой магии
так если нет магии, то какого типа тогда c?))
он не копия, он не указатель, что он?))

Илья
11.10.2018
15:06:33
int

Andrei
11.10.2018
15:06:38
есть тут кто-нибудь, кто использует связку godep и зависимости из приватных репозиториев на gitlab.com?
не могу заставить деп вытянуть зависимости ни по ssh ни по https c access токеном

Илья
11.10.2018
15:06:38
новый int
удивительно же! вы создаете переменную, и получаете переменную!

Roman
11.10.2018
15:07:58
новый int
окей, если c := a[0]
это копия, тогда &a[0] это магия:
https://goplay.space/#_okBf0W_i-f
ибо, ещё раз: если [] возвращает нам копию, то брать адрес копии не должно давать нам адреса самого инта в слайсе

Илья
11.10.2018
15:09:02
еще раз a[0] - не копия, но, когда вы создаете переменную, инициализируя ее из другой, происходит копирование

Roman
11.10.2018
15:09:40
значит [] это не обычная функция а некая лингвистическая магия Go)

Artem
11.10.2018
15:10:31

Alexander
11.10.2018
15:11:28
> го
> удивляться магии

Google

Andrei
11.10.2018
15:11:36

Artem
11.10.2018
15:12:21
ну если он приватный, то там нужны всекие пароли/ключи. тут только сам git поможет

Илья
11.10.2018
15:13:59

Roman
11.10.2018
15:16:16

Dmitri
11.10.2018
15:18:22
вы не поняли...
Это вы не поняли. Адрес, который указатель, тоже место в памяти занимает

Wingman
11.10.2018
15:23:06
/*офтоп*/ камрады, а, совершенно случайно, нет среди присутствующих графана-ниндзей?)

Dmitri
11.10.2018
15:23:17

Никита
11.10.2018
15:27:10
Я правильно понимаю что репозиторий может иметь только CRUD операции типа ListAll, Get, Store, Update, Delete и если допустим мы хотим реализовать метод Restore, который обновляет только одно значение active в нашей таблице, то мы должны использовать обобщенную метод Update, который обновляет данные целиком? Или же можно сделать отдельно метод Restore?

Roman
11.10.2018
15:29:42

Никита
11.10.2018
15:29:57

Илья
11.10.2018
15:30:23
не более того

Alexander
11.10.2018
15:33:13
<~> интерфейс скрывает конкретную реализацию

Илья
11.10.2018
15:35:23

Andrei
11.10.2018
15:35:36

Daniel
11.10.2018
15:36:00
чойта?

Alexander
11.10.2018
15:36:02