@proGO

Страница 523 из 1674
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
если да, то в го interface{} считается генериком.
а можно мне тогда определение генерика корректное?

corpix
06.03.2017
15:49:11
Он сам сказал "мейнстримовые языки". я не знаю плочему он сраный ынтырпрайз считает мейнстримом
Не, ну энтерпрайз как раз очень даже мейнстримовый, там много людей, это целый рынок

corpix
06.03.2017
15:49:56
Рефлект ок кстати, хотя чеоо б ему быть неок если нет типов нормальн
Хочется быть уверенным в работоспособности кода на этапе компиляции. Метапрограммирование через reflection этого не обеспечивает

Google
Phil
06.03.2017
15:50:38
perl? c? сраный интерпрайз? щито?
Ничего. Иди в свой ынтырпрайз обратно

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
https://en.wikipedia.org/wiki/Generic_programming
это я согласен, я про то, почему использование void* в это определение не вписывается? :)

ну, должно же быть научное объяснение

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 посмотри пример для плюсов например. В сях ты не можешь сделать суматор складывающий два воида

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

ты на этапе написания кода должен подумать какие типы там будут

Google
Nikolay
06.03.2017
15:54:24
но тебе в алгоритмах надо этот воид к чему-то приводить
если типы являются first class citizen - то можно, теоретически, написать так, чтобы это было только на этапе компиляции

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
то есть в го абстрактный сумматор возможен?
да, с рефлексией и проверкой типов runtime

только это не то, чего мы хотим, конечно

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

Nikolay
06.03.2017
15:56:42
да, с рефлексией и проверкой типов runtime
так рантайм неинтересно, интересно на этапе компиляции

Daniel
06.03.2017
15:57:03
на этапе компиляции ты и в C на воидах не сможешь

но, николай, как так получилось, что этого довольно важного куска cs ты не знаешь?

Maxim
06.03.2017
15:58:29
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, как и любой другой код, и все проверки происходят в рантайме, поэтому, как бы, генериков на уровне компилятора хоть и нет, но это не особо проблема

все верно?

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
А нафига ты в TestFunc возвращаешь error, если true/false достаточно?
Это пример. Суть в том - как выделять newerr

Denis
06.03.2017
16:39:31
2

Олег
06.03.2017
16:39:37
Вижу разумным второй вариант

Но в пакетах видел, что обычно ошибки заранее глобально дефайнят, а потом возвращают

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

Страница 523 из 1674