首页 > 解决方案 > 使用 Dart 包中提供的扩展

问题描述

我正在尝试在数据包( https://pub.dev/的 data.polynomial 库中使用 RootsExtension ( https://pub.dev/documentation/data/latest/data.polynomial/RootsExtension.html ) documentation/data/latest/),但我似乎无法将根扩展属性添加到 Polynomial 类以便能够执行polynomial.roots.

我什至使用 导入了扩展名所在的文件 import 'package:data/src/polynomial/operator/roots.dart';,但我仍然无法将 root 属性添加到 Polynomial 类。

import 'package:data/polynomial.dart';
import 'package:data/src/polynomial/operator/roots.dart'; //not even used

Polynomial polynomial = Polynomial<double>.fromCoefficients(
    DataType.float64, coeffs);
List<Complex> roots = polynomial.roots; //extension property, roots, not detected

任何有关将扩展应用于多项式类的帮助将不胜感激。

如果你好奇扩展文件是什么roots.dart样子的,它是这样的:

library data.polynomial.operator.roots;

import ...

extension RootsExtension<T extends num> on Polynomial<T> {
     List<Complex> get roots {
          ...
          return rootsList;
     }
}

编辑:它现在有效。看来我需要更好地指定多项式变量的类型并且需要编写Polynomial<double> polynomial = Polynomial<double>.fromCoefficients....

标签: flutterdartdart-pub

解决方案


我认为您应该首先在文件中导入数据包。pubspec.yaml然后你只需要导入这个:

import 'package:data/polynomial.dart';

或根据此安装指南导入其他附加内容。


推荐阅读