
Dmitry
01.06.2016
14:03:07
да выложу я их как только отвяжу от Аранго
в котором рабочий проект сделан

coda
04.06.2016
18:49:59
?

Just
04.06.2016
18:52:02
сори, клаву чернылом испачкал и вот оттирал

Google

Alex
05.06.2016
14:17:17
хули значит
тут можно пиар групп
а в вашей группе нашу уже нельзя?
кто одмен забань
ах ты скотина

Pavel
05.06.2016
14:30:07
Придет одмин тебя забанит

Dmitry
08.06.2016
13:58:39
Подскажи, я что-то дико уже час туплю над простой задачкой. Есть массив пользователей логин-пароль.
Мне надо проверить есть ли в нем тот пользователь который со стороны сайта пришел.
Получается я должен сделать переборку
foreach (user ; users)
{
вот-тут-проверка-есть-ли-рквизиты-с-сайта-в-перебираемом-элементе
если есть ответ: да
если нет ответ: нет
}
проболема в том, что вот допустим пришел пользователь Вася. А первым для итерации оказался пользователь Петя.
В итоге у нас срабатывает условие "Нет". И только потом еще запрос один отправляется, когда до Васи переборка доходит, но уже поздно.
Я что-то не могу понять, как мне перебрать весь набор и отправить только один ответ.

Eto
08.06.2016
13:59:21
Откуда у тебя там вообще перебор?
Обычно же запрос в базу делается.
Она уже возвращает либо запись пользователя, либо ничего.

Dmitry
08.06.2016
13:59:48
у меня не в базе...
точнее не совсем в базе
а хотя да...

Google

Dmitry
08.06.2016
14:00:46
кажется реально надо иначе
пасибо)
а то я блин дико с этим тупил)

Eto
08.06.2016
14:01:54
Пожалуйста.

0x9d8e
08.06.2016
14:04:32
А если и перебор, то как-то так:
foreach(user; users) {
if(user.checkPassword(password)) {
return true;
}
}
return false;

Dmitry
08.06.2016
14:05:40
А если у меня тип объявлен как auto, и мне нужно к колекции иметь доступ снаружи (т.е. чтобы она была до скоупа), то как быть:
void getUsersFromDB()
{
auto db = DataBase(dbname); // users and visitors information
auto usersCollection = db.collection!User("Users", true);
auto usersInDb = db.collection!User("Users");
}
—-
могу ли я у самой функции сделать тип овзврата auto к примеру? и возвращать именно тип данной коллекции?

Eto
08.06.2016
14:06:14
Да, можешь.
auto, как возвращаемый тип, обычно используется для Волдеморт-типов.

Dmitry
08.06.2016
14:07:23
как лучше (тип возврата сделать коллекцию или коллецию до скоупа объявить)?

Max
08.06.2016
14:07:51
auto, грубо говоря вообще не тип, а сахар языка

Eto
08.06.2016
14:08:08
А, коллекцию до скоупа — это ты что подразумеваешь?

Max
08.06.2016
14:08:25

Dmitry
08.06.2016
14:08:40
auto usersCollection; // доступна глобально
void getUsersFromDB()
{
}

Eto
08.06.2016
14:08:59
Хотя, для всех сразу, может и прокатит.
Но сразу проблемы с многопоточностью и подобным.

Dmitry
08.06.2016
14:09:36
А как компилятор тип поймет? Как я понимаю auto только там где тип ясен

Eto
08.06.2016
14:10:40
Вот, кстати. auto usersCollection; работать не будет. Т.к. тут не из чего выяснить тип переменной.

Dmitry
08.06.2016
14:11:04
т.к. только тип возврата остается?
вариант с
return usersInDb;
прокатил, но просто интересно можно ли еще что

Google

Eto
08.06.2016
14:12:11
При использовании auto компилятору нужно самому определить, какой это тип. Если это нельзя сделать — то и программу скомпилировать нельзя.

Dmitry
08.06.2016
14:12:59
пасибо)

Eto
08.06.2016
14:13:56
Кто бы мне теперь объяснил, как стримы в node.js делать.

Dmitry
08.06.2016
14:14:29
Кстати, что такое стримы?))
я не совсем понял где и зачем они нужны.

Eto
08.06.2016
14:20:03
На работе новый проект на Node.js
Вот, думаю кастомный стрим сделать. Да не знаю, как именно.
В общем, проехали. Это оффтоп для данной группы.

Dmitry
08.06.2016
14:20:37
а в ди стримы есть?

Eto
08.06.2016
14:20:56
Официальных — нет.

Max
08.06.2016
14:21:15
Есть

Dmitry
08.06.2016
14:21:19
а чем это хорошо\плохо без них?

Eto
08.06.2016
14:21:20
Есть std.stream, но он deprecated. Документацию не так давно удалили.

Dmitry
08.06.2016
14:21:24
какую задачу они решают?

Eto
08.06.2016
14:21:57
Тоже что и ranges. Только более generic.
Есть
Может что-то новое появилось, о чём я ещё не в курсе?

Max
08.06.2016
14:23:47
Нет, я о std.stream говорил
Доки кстати на месте, выпилить в октябре обещают

Eto
08.06.2016
14:24:54
С сайта документацию выпилили.

Pavel
09.06.2016
10:44:27
А чего стримы выпилили то? Они же в куче языков есть

Google

Pavel
09.06.2016
10:44:39
Что вместо них?

Eto
09.06.2016
10:46:50
Ranges
Стримы просто очень корявые были. Примерно, как в .NET
Но что-то никто не спешит свою реализацию предложить.

Dmitry
09.06.2016
10:48:04
Объясните для дурака что это такое и где нужно на очень простых примерах плиз
А так же чем они плохи

Eto
09.06.2016
10:48:34
Ты погугли.
А чем плохи в .NET — там проще застрелиться, чем собственные стримы реализовать.
Там десятка 2 методов и все нужно реализовать.

Pavel
09.06.2016
10:49:28
Ну стрим, говоря нубским языком, это класс который представляет некий поток байтов который ты можешь читать
ну и/или писать
stream - "поток"
Например файл открыл стримом и читаешь его
Или сетевой сокет
Чем они плохи? Не знаю, самому интересно почему решили отказаться в пользу ренджей

Eto
09.06.2016
10:52:19
https://github.com/dlang/phobos/blob/master/std/stream.d
Вот, сам посмотри и скажи, чем они плохи.

Pavel
09.06.2016
10:54:37
Я бегло просмотрел, затрудняюсь сказать что там плохо. Может быть то что там много базовых типов перебирается, и лучше сделать как-то универсально?
void write(byte x) { writeExact(&x, x.sizeof); }
void write(ubyte x) { writeExact(&x, x.sizeof); }
void write(short x) { writeExact(&x, x.sizeof); }
void write(ushort x) { writeExact(&x, x.sizeof); }вот эти вот портянки мне не нравятся

Eto
09.06.2016
11:12:02
Вероятно.

Google

Dmitry
09.06.2016
11:19:22
А как без них с теми же файлами работа идет?
Про произвольный доступ я читал

Eto
09.06.2016
11:19:49
module std.stream is deprecated - Will be removed by phobos version 2.070
https://forum.dlang.org/thread/gdmydpmrxfgtvrkpyfcv@forum.dlang.org

Dmitry
09.06.2016
15:53:37
Дискуссию я несколько раз читал. Я фишку не подсекаю. Есть какие то статьи чтобы суть понять?

Eto
09.06.2016
16:41:50
К сожалению не знаю таковых.

Dmitry
10.06.2016
06:27:23
Вопрос на засыпку. Опять к теме про пользователей. Как лучше сделать Мне нужно проверить есть ли пользователь в БД и вернуть его группу, имя и допустим пароль.
Как это лучше сделать? Структуру объявить?
И тогда получается до функции должна будет идти структура?
struct UserRight (или как лучше назвать?)
{
bool isExists;
string name;
string group;
}
или как?

Eto
10.06.2016
06:37:36
Я бы просто использовал что-нибудь типа Nullable!User getUser(...). И возвращал полную запись из БД.
Конечно оптимальнее возвращать только нужные поля. И лучше так и сделать, если тебя не смущает, что нужно больше кода написать.

Max
10.06.2016
06:38:53
Структура может быть где угодно, у D не однопроходный компилятор, и не хидеры