Size: a a a

2020 January 23

V

Vabka in rust_offtopic
Вот у меня есть массив
источник

DF

Dollar Føølish in rust_offtopic
Предлагаю рассматривать на примере рхджава
источник

P

Pavel in rust_offtopic
Vabka
Там же должна быть какаета терминальная операция чтобы получить первое попавшееся
findFirst/findAny
источник

DF

Dollar Føølish in rust_offtopic
Там тоже как бы нет элементов
источник

V

Vabka in rust_offtopic
Я вызвал на нём .stream()
источник

P

Pavel in rust_offtopic
Dollar Føølish
Предлагаю рассматривать на примере рхджава
это другие стримы
источник

AZ

Alex Zhukovsky in rust_offtopic
@Override
public final Stream<P_OUT> filter(Predicate<? super P_OUT> predicate) {
   Objects.requireNonNull(predicate);
   return new StatelessOp<P_OUT, P_OUT>(this, StreamShape.REFERENCE,
                                StreamOpFlag.NOT_SIZED) {
       @Override
       Sink<P_OUT> opWrapSink(int flags, Sink<P_OUT> sink) {
           return new Sink.ChainedReference<P_OUT, P_OUT>(sink) {
               @Override
               public void begin(long size) {
                   downstream.begin(-1);
               }

               @Override
               public void accept(P_OUT u) {
                   if (predicate.test(u))
                       downstream.accept(u);
               }
           };
       }
   };
}
источник

AZ

Alex Zhukovsky in rust_offtopic
ох вейт, а что это за accept-то такой?
источник

V

Vabka in rust_offtopic
Vabka
Я вызвал на нём .stream()
Как мне теперь кастомную операцию к получившемуся объекту примерить?
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
@Override
public final Stream<P_OUT> filter(Predicate<? super P_OUT> predicate) {
   Objects.requireNonNull(predicate);
   return new StatelessOp<P_OUT, P_OUT>(this, StreamShape.REFERENCE,
                                StreamOpFlag.NOT_SIZED) {
       @Override
       Sink<P_OUT> opWrapSink(int flags, Sink<P_OUT> sink) {
           return new Sink.ChainedReference<P_OUT, P_OUT>(sink) {
               @Override
               public void begin(long size) {
                   downstream.begin(-1);
               }

               @Override
               public void accept(P_OUT u) {
                   if (predicate.test(u))
                       downstream.accept(u);
               }
           };
       }
   };
}
это ты смотреишь на одну из реализаций стрима
источник

P

Pavel in rust_offtopic
Vabka
Как мне теперь кастомную операцию к получившемуся объекту примерить?
какую  именно?
источник

V

Vabka in rust_offtopic
Pavel
это ты смотреишь на одну из реализаций стрима
Ну так как написать реализацию?
источник

V

Vabka in rust_offtopic
Pavel
какую  именно?
Ну например я хочу такой метод, чтобы я мог почередовать
источник

P

Pavel in rust_offtopic
Vabka
Ну так как написать реализацию?
дописываешь к своему классу implements Stream<T> и реализуешь методы, как умеешь
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
findFirst/findAny
представь себе ситуацию, что тех комбинаторов что написали недостаточно
источник

AZ

Alex Zhukovsky in rust_offtopic
или мы смотрим как этим комбинаторы сами реализованы
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
представь себе ситуацию, что тех комбинаторов что написали недостаточно
и?
источник

AZ

Alex Zhukovsky in rust_offtopic
ну вот я вижу конкретное пулл-бейзд "accept"
источник

AZ

Alex Zhukovsky in rust_offtopic
в стандартом методе фильтр
источник

DF

Dollar Føølish in rust_offtopic
Кстати да
источник