@dlangru

Страница 97 из 719
Oleg
29.10.2016
19:22:35
qwe
29.10.2016
19:24:22
так, а что метод возвращает?

Oleg
29.10.2016
19:24:54


так, а что метод возвращает?
Строку, которая компонует внутри себя весь результат обхода

Google
Oleg
29.10.2016
19:25:10
Вот так:

'hello' + ('(' '+('2')+')')

qwe
29.10.2016
19:26:15
язык, кажется, не статически типизированный

Oleg
29.10.2016
19:26:28
Статически еще как

qwe
29.10.2016
19:26:53
не вижу где указывается возвращаемый тип

Oleg
29.10.2016
19:27:42
Выводится автоматом

Разве в D не выводится?

Ну считай что везде auto стоит

qwe
29.10.2016
19:29:09
ну да, ну да

кстати эту бы фичу я бы убрал)

Oleg
29.10.2016
19:30:11
auto в D это не полный Хиндли-Милнер вывод типа я понимаю

кстати эту бы фичу я бы убрал)
Чем он тебе не понравился то?

Pavel
29.10.2016
19:31:08
Наверно тем что перестаешь понимать какого типа переменная

Google
qwe
29.10.2016
19:31:15
да

по return когда приходится искать, что возвращает метод, становится грустно

Pavel
29.10.2016
19:31:33
Для новичков это может быть проблемой, сам с таким сталкивался

Oleg
29.10.2016
19:31:53
Смотрите, полный вывод типов: https://github.com/HaxeFoundation/haxe/blob/development/src/generators/genlua.ml

Этот код почти неубиваемый

(Щас еще подумаете на меня что я функциональщик)

enum opEqualsPart = "текст" Это можно сделать ввиде обычного const? В чем суть такой записи?

qwe
29.10.2016
19:35:51
писать меньше)

шучу

знатоки меня поправят если что. enum a=1 эквивалент #define a 1. Или как там в С?

Sergey
30.10.2016
06:04:17
По-моему кое-кто обещал не пиарить больше haxe

если серьезно, насколько понимаю, Haxe нишевой язык, и ниша у него немного другая чем у D. зачем их постоянно сравнивать?

в D это делается примерно так же. Могу конечно ошибаться, поскольку не знаю Haxe.

я уже много лет не работал ни с С, ни с С++ (поэтому могу даже какие-то вещи путать между ними) но насколько понимаю, ближайшим аналогом для define в D должен быть alias.

продал душу C# и прикладному программированию, о чем жалею

Dmitry
30.10.2016
07:18:35
Так, а если я хочу посмотреть как реализован switch мне его в core части искать языка или где?

почитал про паттерн матчинг в haxe. Был очень удивлен что haxe судя по синтаксису очень полноценный и приятный язык. Я раньше считал его каким-то кустарным поделием

Oleg
30.10.2016
17:29:21
если серьезно, насколько понимаю, Haxe нишевой язык, и ниша у него немного другая чем у D. зачем их постоянно сравнивать?
Я сравниваю изза раста, чья ниша с D пересекается, просто примеры кода на расте выглядят как пьяный угар и не рассчитаны на gc

Google
Oleg
30.10.2016
17:30:57
Просто пытаюсь понять идиоматику D

Sergey
30.10.2016
19:14:06
До сих пор подозревал, что проблема есть, но не упирался в нее. А теперь таки уперешвшись в нее, не могу в это поверить. Элементарнейшая задача: понять, можно ли привести некую переменную к некоему типу. И либо я уже не соображаю, так как у меня ночь, либо в D просто нет элегантного способа это сделать. castSwitch какой-то уж слишком громоздкий, и не очень подходит. например есть классы A, B:A, С:B, у А есть метод meth(A heisenberg), который может быть переопределен в наследниках. в B.meth мне нужно проверить можно ли heisenberg привести к B (в то время как heisenberg может быть типа B, C, или какого-нибудь другого наследника A). typeof не годится - так как, в любом случае, будет возвращать A. typeid тоже не придумал как тут использовать, is, как и IsAssignable, работает только с типами, classinfo - если только в цикле проходить по base, пока не упрусь в нужный TypeInfo_Class или null, но это решение какое-то грязноватое, по сравнению с привычным мне в C#: heisenberg is B

проверка должна быть rt

т.е. в static if представляю, как можно проверить можно ли привести переменную к типу.

чушь уже начал писать

Олег
30.10.2016
19:34:56
Приветствую! не рассматривали вариант: B b = cast(B)heisenberg, если не получается привести, то b is null

Oleg
30.10.2016
20:34:11
Кстати, это самый правильный вариант

Sergey
31.10.2016
03:11:38
да, про этот вариант забыл совсем, хотя, конечно, рассматривал изначально) привычка использовать heisenberg is B заставляет предвзято относиться к варианту с исключениями, но, конечно же, это лучше чем castSwitch и прочие извраты

Dmitry
31.10.2016
12:58:28
Как я понимаю коллбек термин только из js? Тоесть когда в функцию другую функцию передаем как аргумент. В Ди аналогом этого что будет?

Pavel
31.10.2016
13:02:10
Не только из js конечно, это старый как мамонт термин

Grigirii
31.10.2016
13:02:31
это даже на русский успели перевести - обратный вызов

Pavel
31.10.2016
13:02:44
в ди тоже так можно сделать же, посмотри хотя бы стартовый исходник приложения vibe.d

Grigirii
31.10.2016
13:02:45
это просто паттерн программирования

Pavel
31.10.2016
13:02:57
Там в роутере передается колбек для индексной страницы

Dmitry
31.10.2016
17:13:18
Правильно ли я понимаю, что под этим понимается, то что передаваемая как аргумент функция исполнится в начале и только потом будет выполняться тело родителя?

Sergey
31.10.2016
17:18:45
передаваемая, как аргумент функция испольнится тогда, когда будет вызвана, если вообще будет

если я, конечно, правильно понял вопрос. Не совсем понятно, что подразумевается под "родителем". Может на прмерах?

0x9d8e
31.10.2016
17:20:29
я так понимаю речь про какой-то частный случай в vibe.d, не о поведении языка

Pavel
31.10.2016
17:23:28
Правильно ли я понимаю, что под этим понимается, то что передаваемая как аргумент функция исполнится в начале и только потом будет выполняться тело родителя?
Ровно наоборот, сначала выполняется "родительская" функция, а внутри себя она может выполнить колбек. Или может не выполнить если не хочет.

Sergey
31.10.2016
17:25:20
кстати, раз уж речь зашла об обратных вызовах и соответсвующих паттернах, то в D есть своя версия событий - реализация паттерна Наблюдатель signals https://dlang.org/phobos/std_signals.html

Google
Dmitry
31.10.2016
17:45:10
А чем колбек полезен? Именно тем, что он дергается после выполнения основной функции?

0x9d8e
31.10.2016
17:46:41
Не после, а тогда когда функция посчитает нужным. И передаст в него аргументы какие посчитает нужным.

Sergey
31.10.2016
17:46:42
он дергается не после, а во время, а вернее, из

0x9d8e
31.10.2016
17:47:40
Может если я скажу, что коллбек == делегат станет яснее?

Dmitry
31.10.2016
17:48:30
нет, я с делигатами мало знаком. Представляю их себе конечно, но не сильно хорошо

0x9d8e
31.10.2016
17:49:34
Ну по-сути функция передаваяемая в качестве аргумента. Могу какой-нибудь синтетический пример привести

Admin
ERROR: S client not available

Dmitry
31.10.2016
17:50:15
да не, пока я примерно понимаю, только не совсем ясен момент когда оно дернется

0x9d8e
31.10.2016
17:50:21
Например делегат может быть передан в функцию сортировки в каачестве функции сравнения

Dmitry
31.10.2016
17:50:41
просто "когда функция посчитает нужным" мне не ясно т.е. как это выглядит то?

0x9d8e
31.10.2016
17:50:59
Там где функция (родительская) его вызовет

Dmitry
31.10.2016
17:51:07
а...

0x9d8e
31.10.2016
17:51:47
asd(zxc) { ... zxc(); ///here ... }

Dmitry
31.10.2016
18:15:57
а он будет в том же потоке работать?

Sergey
31.10.2016
18:17:07
да

Oleg
31.10.2016
18:18:32
а он будет в том же потоке работать?
В потоке вызывающей её asd

Мб vide.d как-то разруливает, но на рейс кондишны лучше не натыкаться

Dmitry
01.11.2016
06:54:49
Кстати, не скажете, а Ди нормально с путями на шаре работает я про сетевые пути вида //

Evil
01.11.2016
07:34:52
Что значит «Ди работает»?

Берешь конкретный метод из конкретной библиотеки и смотришь.

Google
Dmitry
01.11.2016
07:41:01
Да я на новой работе хотел попробовать. Но уже сказали писать на питоне

Pavel
01.11.2016
11:37:05
расскажи про новую работу)

Dmitry
01.11.2016
11:39:21
Давай в приват чтобы никто не ругался на оффтоп

qwe
01.11.2016
14:00:59
Как думаете нормально на форуме будет спросить о том, куда пропал один из членов D Language Foundation?

u13147
01.11.2016
14:01:29
Александреску?

Oleg
01.11.2016
14:02:49
Как думаете нормально на форуме будет спросить о том, куда пропал один из членов D Language Foundation?
мне кажется странновато будет) ты заплатил ему денег, а он не выполнил работу и скрылся?)

qwe
01.11.2016
14:02:57
))

Grigirii
01.11.2016
14:03:05
а о ком речь?

qwe
01.11.2016
14:03:11
помню как-то mr. Nowak искали)

не, этого потерял https://github.com/Hackerpilot/

Oleg
01.11.2016
14:04:21
беда, если он потерялся

он же единственный dcd сканер пишет

qwe
01.11.2016
14:04:49
вот вот

ну ладно

может над ddmd сидит

и не выходит)

Sergey
01.11.2016
17:37:00
Александреску, конечно, молодец. Но в своей книге написал много всяких мелочей, не соответсвующих действиетльности

Страница 97 из 719