
Pawel
04.09.2018
09:30:32

Алексей
04.09.2018
09:48:12

Никита
04.09.2018
09:49:47

Google

Алексей
04.09.2018
09:50:04

Никита
04.09.2018
09:50:18
Конкретно что не устраивает?

Алексей
04.09.2018
09:50:37
Да хоть те же слайсы.

Никита
04.09.2018
09:50:49
А что с ними не так?

Kirill
04.09.2018
09:51:14
Только вот без дженериков срачи
Астарожна

Алексей
04.09.2018
09:52:20
Ну Go это как бы принципиально concurrency язык. И в нём есть примитив, который позволяет любому желающему без зазрений совести мутировать нижележащий массив, который может лежать ещё под парочкой слайсов.
Что же тут может пойти не так? Да вообще всё.
Поэтому надо следить за собой и за коллегами, чтобы не мутировать то что не стоит мутировать.
Самому следить. Ведь возложить такую слежку на компилятор не представляется возможным.
Когда кода и программистов не очень много и программисты понимают суть проблемы, то всё в принципе норм.

Никита
04.09.2018
09:55:15
Ну изменять напрямую массив под слайсом никто не может
если вам нажна какая то синхронизация, используйте мьютексы например

Google

Алексей
04.09.2018
09:56:40
И через сам массив, и через другие слайсы

Pawel
04.09.2018
09:57:09

Никита
04.09.2018
09:57:35
ну массив может меняться только в случае нехватки места, все

Алексей
04.09.2018
09:57:49

Kirill
04.09.2018
09:58:01

Никита
04.09.2018
09:58:09

Kirill
04.09.2018
09:58:17
Спеку читайте хоть перед срачами

Алексей
04.09.2018
09:58:52
Странно конечно, что это приходится объяснять гоферам в го чатике.

Kirill
04.09.2018
10:00:07
А когда еще?
Перевыделение да, может произойти при grow. А мутировать данные внутри может любой дурак, пока syscall соответствующий не дернешь
Хотя сентябрь, час дня, школоло набегают на чатики

Никита
04.09.2018
10:00:59

Kirill
04.09.2018
10:01:07

Никита
04.09.2018
10:01:11
Как?

Kirill
04.09.2018
10:01:30
Да, бл*дь, три секунды подумав
&s[0]

Алексей
04.09.2018
10:01:56
Да даже не напрямую, а через другой слайс

Google

Kirill
04.09.2018
10:02:03
И это только один из тонны вариантов

Pawel
04.09.2018
10:02:24
с const два варианта есть реальных = сделать его неглубоким - и в этом случае он практически бесполезен.
2 - сделать всё неизменяемым по умолчанию как предлагал Даниель. И это будут ещё хуже чем питон 2/3, сломает простоту системы типов и превратит Голанг в говнораст - и тоже мало что даст, поскольку изначально язык мутабельный

Алексей
04.09.2018
10:03:00
Просто на самом деле все эти иммутабельные данные, чистые функции и прочая функциональная петушня не от хорошей жизни взялись.
И особенную роль они как раз начинают играть при появлении многопоточности

Daniel
04.09.2018
10:04:40
параллелизма в широком смысле

Алексей
04.09.2018
10:04:49
именно

Никита
04.09.2018
10:05:16
&s[0]
ну и как вы собираетесь менять массив ?

Pawel
04.09.2018
10:05:20

Никита
04.09.2018
10:05:29

Алексей
04.09.2018
10:05:55

Никита
04.09.2018
10:06:11
или менять его елементы которые не входят в диапазон слайса

Kirill
04.09.2018
10:06:25

Pawel
04.09.2018
10:06:33

Kirill
04.09.2018
10:06:34

Никита
04.09.2018
10:06:54
давай определимся сначала

Алексей
04.09.2018
10:07:00

Pawel
04.09.2018
10:07:46

Никита
04.09.2018
10:07:59
Человек выше говорил что мы можем менять массив под слайсом, верно? Я это понял так, что он говорит о том, что мы можем напрямую менять елементы всего массива

Kirill
04.09.2018
10:08:10

Google

Никита
04.09.2018
10:08:20
Мутировать, пусть будет так

Алексей
04.09.2018
10:08:51

Kirill
04.09.2018
10:08:54
Не заменять подлежащий массив (хотя это тоже можем через unsafe)

Pawel
04.09.2018
10:09:33
хотя я такого не предлагал ведь

Алексей
04.09.2018
10:09:59

Никита
04.09.2018
10:10:27

Алексей
04.09.2018
10:11:50

Admin
ERROR: S client not available

Pawel
04.09.2018
10:12:48
ничего страшного, race детектор же выдали

Kirill
04.09.2018
10:13:07

Pawel
04.09.2018
10:13:27
в смысле, небо не рухнет на землю.

Алексей
04.09.2018
10:13:47
Да действительно, жаль не существует таких структур данных, для которых вообще не требуется синхронизация.

Kirill
04.09.2018
10:13:54
Видел, как чел запускал -race с gomaxprocs=1
"потому что если больше, то оно ругается много"

Pawel
04.09.2018
10:14:36

Никита
04.09.2018
10:14:47

Алексей
04.09.2018
10:15:38

Pawel
04.09.2018
10:16:59

Алексей
04.09.2018
10:18:15

Google

Pawel
04.09.2018
10:20:38

Алексей
04.09.2018
10:22:02

Pawel
04.09.2018
10:22:38
ты ничего не понял и слышишь только себя

Алексей
04.09.2018
10:22:45
конечно

Pawel
04.09.2018
10:33:46
Что те не выдали? Тебе надо - ты и делай, Как сделаешь - позови. А до тех пор это у тебя не более чем пустое нытьё

Алексей
04.09.2018
10:37:24
Причём из аргументов против я услышал лишь "хаскиль никто не юзает" (чего я не отрицаю) и "Робу Пайку не зашло"

Artem
04.09.2018
10:42:14
всякие map, filter итд над слайсами и мапами было бы удобно иметь

Alexander
04.09.2018
10:42:28
? еретики!

Алексей
04.09.2018
10:42:42

Artem
04.09.2018
10:42:54
ну почему

Alexander
04.09.2018
10:43:03
сначала мап с фильтром, а потом что ? монады тебе подавай ?

Алексей
04.09.2018
10:43:10
вот именно

Artem
04.09.2018
10:43:16
их реально не хватает. for range каждый раз писать это ебала какая-то. даже вон в жс есть

Алексей
04.09.2018
10:45:51
Чёт я прям поднял оппозиционные настроения в чатике

Kirill
04.09.2018
10:46:32

Artem
04.09.2018
10:46:51
про иммутабельность кстати я хз. у меня есть мнение что ее полезность и необходимость в большинстве случаев преувеличена

Алексей
04.09.2018
10:47:48
Я вообще считаю, что программист должен решать когда и что юзать.
Где-то иммутабельность прям отлично зайдёт, где-то будет очень сильно мешать