
Daniel
03.09.2018
22:48:04
у нас все передается по значению
и у всего есть тип

Alexander
03.09.2018
22:48:45
не все по значению

Daniel
03.09.2018
22:49:40
то есть - при создании нового указателя, структуры, слайса и мапы (все, вроде?) надо рядом с типом еще взвести флаг immutable, и дальше его при передаче копировать.
а компилятор пусть проверяет его

Google

Daniel
03.09.2018
22:49:52

Alexander
03.09.2018
22:50:15
слайсы

Daniel
03.09.2018
22:50:33
слайсы тоже по значению, указатели и счетчики копируются

Roman
03.09.2018
22:50:36
слайсы
слайс передаётся копией, но вот сам array под ним конечно не копируется

Alexander
03.09.2018
22:50:53
да, по ссылке передается

Roman
03.09.2018
22:51:16

Daniel
03.09.2018
22:51:30
в котрой есть указатель на массив

Alexander
03.09.2018
22:51:41
OK! пусть так

Roman
03.09.2018
22:54:09

Roman
03.09.2018
22:54:27

Daniel
03.09.2018
22:54:40
чего именно ты не понимаешь?
как компилятор типы проверяет при присваивании - понимаешь?

Roman
03.09.2018
22:55:05
Потому что в твоём объяснении смешаны runtime & compile time

Google

Daniel
03.09.2018
22:55:13
нет, не смешаны вообще
в рантайме мне никакой контроль мутабельности не нужен (пока?)

Alexander
03.09.2018
22:56:25
Блин, все же, может быть, не надо так глобально. Просто позволить пограммистам писать в определении функции модификатор const при параметре? Это - уже на тупых пользователей этой функции повлияет, и, наверное, этого достаточно было бы

Roman
03.09.2018
22:57:42

Alexander
03.09.2018
22:59:26
пока существуют конпутеры и пограммисты - лучше не будет никак :)

Roman
03.09.2018
22:59:30

Daniel
03.09.2018
22:59:51
как обычно

Alexander
03.09.2018
23:00:35
И почему, кстати, все думают, что по умолчанию, каждый хочет отстрелить себе ногу и часами сидеть дебажить?
Хотя, часто видишь, что хотят, конечно :)

Roman
03.09.2018
23:00:50

Daniel
03.09.2018
23:01:01
никто не хочет, но за последние 5 лет я проделывал это дважды

Roman
03.09.2018
23:01:07
И структура с поинтером на саму себя

Daniel
03.09.2018
23:01:30
я проблемы не понимаю

Alexander
03.09.2018
23:01:46

Daniel
03.09.2018
23:02:02
я бы хотел больше никогда не

Alexander
03.09.2018
23:02:23
не получится. Проблема слишком сложная, чтобы решить ее так просто
и не в иммутабельности проблема, в общем-то даже :)

Daniel
03.09.2018
23:02:47
в с++ решили, и у нас можно
есть несколько паттернов, которые реально помогают

Roman
03.09.2018
23:03:51
Мне кажется, что иммутабельность ничего не даст

Google

Alexander
03.09.2018
23:04:24

Roman
03.09.2018
23:08:03

Roman
03.09.2018
23:08:31

Daniel
03.09.2018
23:08:45
Мне кажется, что иммутабельность ничего не даст
в каком смысле ничего?
класс редких, но очень неприятных ошибок она предотвращает полностью
map-reduce, когда он у нас появится, можно будет раскидывать по горутинам
оптимизатор сможет не вычислять одно и тоже по 100 раз

Alexander
03.09.2018
23:08:47
нет
const []int

Roman
03.09.2018
23:10:07
нет
const []int
Это иммутабельный слайс, а я про слайс из иммутабельных объектов

Roman
03.09.2018
23:10:18
И почему, кстати, все думают, что по умолчанию, каждый хочет отстрелить себе ногу и часами сидеть дебажить?
дело не в том что все хотят. Дело в том что это всё-равно часто происходят, потому-что наличие даже гениальной головы не гарантирует отсутствие ошибок. Поэтому у нас собственно и есть компиляторы, умные алгоритмы облегчающие нам жизнь дабы слишком голову стейтом не забивать.
самое страшное в том, что некоторые господа, привыкают городить врапер-структуры только для того чтоб защитить слайс от мутабельности и считают это нормальным отказываясь от const []byte

Alexander
03.09.2018
23:10:36

Roman
03.09.2018
23:10:56

Daniel
03.09.2018
23:11:00

Roman
03.09.2018
23:11:34
способность приспосабливаться к любым условиям это особенное качество человека... особенно хорошее и особенно плохое...
погрузи человека в нищиту и он привыкнет к ней и будет напрочь отрицать богатства. Погрузи человека в "плохой язык" (я с осторожностью, не буду конкретизироватрь) и он привыкнет на нём костылить

Roman
03.09.2018
23:11:49

Daniel
03.09.2018
23:11:54
да

Alexander
03.09.2018
23:12:06
Ну, надо сначала хотя бы начать с модификатора const при описании функции. А?

Roman
03.09.2018
23:12:21
Окей, слайс из иммутабельных слайсов

Roman
03.09.2018
23:12:23

Roman
03.09.2018
23:12:52
то есть - при создании нового указателя, структуры, слайса и мапы (все, вроде?) надо рядом с типом еще взвести флаг immutable, и дальше его при передаче копировать.
а компилятор пусть проверяет его

Daniel
03.09.2018
23:12:56

Alexander
03.09.2018
23:12:57
Кстати, а чего это вы тут так разорались-то? lexx всем сказал идти работать! А вы чего?

Roman
03.09.2018
23:13:02
Речь об этом флаге :)

Google

Roman
03.09.2018
23:13:10

Alexander
03.09.2018
23:13:48
Иногда сон - это тоже работа!

Roman
03.09.2018
23:15:24
map [ const *Object ] const [] [] Object
мапа имутабельных слайсов мутабельных слайсов мутабельных структур типа Object, с имутабельным ключём типа указателя на структуру Object ?

Alexander
03.09.2018
23:16:08
не надо так огород городить! Иначе это не проверить будет на этапе компиляции
Надо, если сказано const, то шаг влево, шаг вправо - до свидания по поводу всей переменной

Roman
03.09.2018
23:17:26
[] const [] int
Угу. Мапа иммутабельных слайсов содержащая иммутабельные структуры

Roman
03.09.2018
23:17:26

Admin
ERROR: S client not available

Roman
03.09.2018
23:18:02

Alexander
03.09.2018
23:18:08
как-то я думаю, что не сможет, но думать и рассказывать лень :( Ночь на дворе

Roman
03.09.2018
23:18:14

Roman
03.09.2018
23:18:31

Alexander
03.09.2018
23:19:02
угу

Roman
03.09.2018
23:19:29

Alexander
03.09.2018
23:19:54
не флага, а модификатора

Roman
03.09.2018
23:20:04

Alexander
03.09.2018
23:20:06
хоть это - одно и то же

Roman
03.09.2018
23:20:23

Google

Alexander
03.09.2018
23:20:32
угу

Roman
03.09.2018
23:20:47
"спецификатором" если верить гугл переводчику

Daniel
03.09.2018
23:21:10
или так, да

Roman
03.09.2018
23:21:34
по крайней мере в C++ const это qualifier

Roman
03.09.2018
23:21:35
Ммм, а как это все будет жить с unsafe?

Daniel
03.09.2018
23:21:48
параллельно

Roman
03.09.2018
23:22:04

Daniel
03.09.2018
23:22:07
unsafe пускай делает, что хочет, на то он и unsafe

Alexander
03.09.2018
23:22:23
В общем, я хочу qualifier конст только при описании функции. А иначе как это сделать, чтобы погроммист у себя внутри пакета менял все, что ему нада?

Daniel
03.09.2018
23:22:59
вообще-то, нам давно нужны константы сложных типов

Roman
03.09.2018
23:23:10

Daniel
03.09.2018
23:23:19
так что его надо и к переменным, и к параметрам приделывать

Roman
03.09.2018
23:23:54

Alexander
03.09.2018
23:24:01

Roman
03.09.2018
23:24:39

Daniel
03.09.2018
23:24:48

Roman
03.09.2018
23:25:46

Roman
03.09.2018
23:25:51

Daniel
03.09.2018
23:26:06
да, и это меня не беспокоит

Roman
03.09.2018
23:26:32