我有一个1到10,000的数字存储在一个数组中long.按顺序添加它们将得到50,005,000的结果.
我编写了一个Spliterator,如果一个数组的大小超过1000,它将被拆分为另一个数组.这是我的代码.但是当我运行它时,添加的结果远远超过50,005,000.有人能告诉我我的代码有什么问题吗?
非常感谢.
import java.util.Arrays;
import java.util.Optional;
import java.util.Spliterator;
import java.util.function.Consumer;
import java.util.stream.LongStream;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
public class SumSpliterator implements Spliterator<Long> {
private final long[] numbers;
private int currentPosition = 0;
public SumSpliterator(long[] numbers) {
super();
this.numbers = numbers;
}
@Override
public boolean tryAdvance(Consumer<? super Long> action) {
action.accept(numbers[currentPosition++]);
return currentPosition < numbers.length;
}
@Override
public long estimateSize() {
return numbers.length - currentPosition;
}
@Override
public int characteristics() {
return SUBSIZED;
}
@Override
public Spliterator<Long> trySplit() { …Run Code Online (Sandbox Code Playgroud) 我遇到了麻烦flutter_slidable: ^1.2.0。
看下面的代码
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_slidable/flutter_slidable.dart';
class SlidableWidget extends StatelessWidget {
final Widget child;
final void Function(BuildContext context) onDismissed;
const SlidableWidget({required this.child, required this.onDismissed, Key? key}) : super(key: key);
@override
Widget build(BuildContext context) => Slidable(
child: child,
endActionPane: const ActionPane(motion: ScrollMotion(), children: [
SlidableAction(
flex: 1,
onPressed: this.onDismissed(context),
backgroundColor: Colors.red,
foregroundColor: Colors.white,
icon: Icons.delete,
label: 'Delete',
),
],
extentRatio: 0.2,),
);
}
Run Code Online (Sandbox Code Playgroud)
我希望onDismissed函数作为参数传递,但在线上onPressed: this.onDismissed(context),这是不正确的。它说Invalid const value。但我不知道出了什么问题以及如何解决。谁能给我解释一下吗?
太感谢了。
苏拉