
Mikalai
06.03.2017
15:47:22

Dmitry
06.03.2017
15:47:25
Азаз
Посаны генерики завезли, как в яве теперь
(После конпеляции правда)

Google

corpix
06.03.2017
15:48:09
И reflect во все поля!
Вот это метапрограммирование, которое мы любим

Phil
06.03.2017
15:48:32
?
Он сам сказал "мейнстримовые языки". я не знаю плочему он сраный ынтырпрайз считает мейнстримом

Nikolay
06.03.2017
15:48:41

Dmitry
06.03.2017
15:48:48

corpix
06.03.2017
15:49:11

Nikolay
06.03.2017
15:49:27

Phil
06.03.2017
15:49:40

corpix
06.03.2017
15:49:56

Dmitry
06.03.2017
15:50:02

Google

Phil
06.03.2017
15:50:38

Dmitriy
06.03.2017
15:50:45
Привет, может кто-то сталкивался, после запуска приложения логи в файл записываются, но если внести изменения в файл то логирование останавливается, что можно сделать?

Nikolay
06.03.2017
15:50:56

Daniel
06.03.2017
15:51:01
николай

corpix
06.03.2017
15:51:02

Vladimir
06.03.2017
15:51:03

Daniel
06.03.2017
15:51:04
уймись

Nikolay
06.03.2017
15:51:51
ну, должно же быть научное объяснение

Vladimir
06.03.2017
15:52:10

Nikolay
06.03.2017
15:52:15

Daniel
06.03.2017
15:52:33
чего тебе?
второе предупреждение тебе от модератора - не хами

Dmitry
06.03.2017
15:53:05
Модераторам тоже не плохо бы перестать хамить :-)

Nikolay
06.03.2017
15:53:22
По определению не вписывается
я как вижу - я могу написать кучу алгоритмов, передавая между ними void* и только в коде на этапе компиляции передать туда явно типы, к которым все приведется

Vladimir
06.03.2017
15:53:30
@Enchantner посмотри пример для плюсов например. В сях ты не можешь сделать суматор складывающий два воида

Nikolay
06.03.2017
15:53:37

Vladimir
06.03.2017
15:53:48

Nikolay
06.03.2017
15:53:49

Vladimir
06.03.2017
15:54:05
поэтому оно не дженерики, поэтому же и интерфейсы не дженерики в Го
ты на этапе написания кода должен подумать какие типы там будут

Google

Nikolay
06.03.2017
15:54:24

Vladimir
06.03.2017
15:54:42

Nikolay
06.03.2017
15:55:16

Vladimir
06.03.2017
15:55:29

corpix
06.03.2017
15:55:44
Погодите
Типы в go не first class citizens
Тогда бы проблемы не существовало, потому что можно было бы строить типы на ходу

Daniel
06.03.2017
15:56:14
только это не то, чего мы хотим, конечно

Dmitry
06.03.2017
15:56:39
Кто сказал идрис

Nikolay
06.03.2017
15:56:42

Daniel
06.03.2017
15:57:03
на этапе компиляции ты и в C на воидах не сможешь
но, николай, как так получилось, что этого довольно важного куска cs ты не знаешь?

Maxim
06.03.2017
15:58:29

Nikolay
06.03.2017
15:58:33

Maxim
06.03.2017
15:58:46
/warn
Но бот отзывается только на модеров

Nikolay
06.03.2017
15:59:16

Daniel
06.03.2017
15:59:23
про то, что такое генерики, и чем они отличаются от всего остального, и почему они не нужны в языках с динамической типизацией

Nikolay
06.03.2017
16:00:54
никаких правил я не нарушил

Google

Daniel
06.03.2017
16:01:32
да мне все равно, нарушил, или нет. я не о законности пекусь, а о продуктивности
все, тема закрыта

Nikolay
06.03.2017
16:02:04
мы обсуждаем генерики, а ты ноешь, что я развожу флейм. И кто из нас непродуктивен?
да, закрыта

Daniel
06.03.2017
16:02:08
за обсуждение действий модератора - бан
такое правило, с этого момента

Dmitry
06.03.2017
16:02:40
?

Nikolay
06.03.2017
16:02:42
за такое правило - нахер такого модератора. Хочешь - бань.

corpix
06.03.2017
16:02:47
Классное у нас сообщество, с сильными лидерами)

Admin
ERROR: S client not available

Nikolay
06.03.2017
16:02:49
либо по теме
либо никак
я только по теме общаюсь и на личности не перехожу

Daniel
06.03.2017
16:03:14
вот и продолжай

Nikolay
06.03.2017
16:03:28
итак
я если правильно понимаю, суть генериков в том, чтобы компилятор смог сгенерить код, даже не подсовывая ему конкретный тип, или подсовывая какой-то дефолтный, к которому все приводятся

Daniel
06.03.2017
16:05:10
нет
генерики - это абстрактный код, который при использовании порождает конкретный код с конкретными типами
поэтому - работают compile-time проверки, и не требуются run-time проверки

Nikolay
06.03.2017
16:09:43
все верно, проблемы C и Go в этом случае в том, что нельзя написать общую функцию с void*, а потом извне передать ей, чтобы она этот void* кастовала к какому-то конкретному типу

Google

Dmitry
06.03.2017
16:10:01
О_о

Nikolay
06.03.2017
16:11:17
в питоне и динамических языках такой проблемы нету, потому что, скажем, тип int - такой же object, как и любой другой код, и все проверки происходят в рантайме, поэтому, как бы, генериков на уровне компилятора хоть и нет, но это не особо проблема
все верно?

Vladimir
06.03.2017
16:11:43
в питоне и динамических языках такой проблемы нету, потому что, скажем, тип int - такой же object, как и любой другой код, и все проверки происходят в рантайме, поэтому, как бы, генериков на уровне компилятора хоть и нет, но это не особо проблема
не совсем, в динамических языках о проблеме ты узнаешь когда до нее дойдешь

Nikolay
06.03.2017
16:11:54
почти все

Vladimir
06.03.2017
16:12:11

Nikolay
06.03.2017
16:12:35
по крайней мере, в cpython
возможно, в каком-нибудь cython это есть, но что-то я сомневаюсь, это же та же сишечка
то есть, формально, можно было бы в го обойти эту проблему, обернув типы в интерфейсы
но на деле это костыль
и выше это уже обсосали)
(чувствую себя капитаном просто)

Phil
06.03.2017
16:35:10
https://play.golang.org/p/w-xOxR47TO вот как правильно - 1, 2 или 3? Или я фигней страдаю?

Олег
06.03.2017
16:37:22
А нафига ты в TestFunc возвращаешь error, если true/false достаточно?
Так что я бы сказал, что ты фигнёй страдаешь

Phil
06.03.2017
16:38:43

Denis
06.03.2017
16:39:31
2

Олег
06.03.2017
16:39:37
Вижу разумным второй вариант
Но в пакетах видел, что обычно ошибки заранее глобально дефайнят, а потом возвращают

Phil
06.03.2017
16:40:10
Ну т.е. в реальной жизни у меня например TestFunc() - это запрос в базу данных, а SomeFunc() - это обработка всей транзакции