我已经从Random包中复制了完整的math.dart类,并为其指定了CustomRandom名称,现在我不明白为什么我的代码无法正常工作。

abstract class CustomRandom {
  external factory CustomRandom([int seed]);

  external factory CustomRandom.secure();

  int nextInt(int max);

  double nextDouble();

  bool nextBool();
}

我正在使用它
print("${Random().nextInt(10)}"); // standard one works
print("${CustomRandom().nextInt(10)}"); // my one fails

我知道标准类中还有其他事情在代码中不可见,但是如何使我的类正常工作?

最佳答案

您的版本不会执行任何操作,因为它没有实现。

真正的Random类具有external factory构造函数(其实现位于其他位置,one for the Dart VM/runtimeone for JavaScript),并且该实现实例化一个实际执行某项操作的对象。

10-08 08:06