索引器是否应该始终引用离散序列?我很想不知道,但我想问问其他人是怎么想的。
这个问题是在对多项式类进行“捷径”之后开始的。
Polynomial p = new Polynomial(coefficients);
计算 y = p(5.2) 的正常方法是使用以下方法调用:
double y = p.Evaluate(5.2);
制作的快捷方式(使用 double 类型的索引器)是:
double y = p[5.2];
我认为这个想法是多项式(一个连续函数)被视为一种模拟数组或连续数组,如果这有意义的话。但是,Evaluate 函数来自接口 IMathFunction。该接口也用于插值类:
CubicSplineInterpolator f = new CubicSplineInterpolator(arrayOfPoints)
这里有一个问题,因为插值器类已经有一个 int 类型的公共索引器来访问它们用于插值的点数组。插值器可以像一个连续函数一样工作(在其限制范围内),但如果将快捷方式推广到所有 IMathFunction 类,则 f[5.0] 和 f[5] 将返回不同的对象,并且在阅读代码时可能会造成混淆。
double y;
Point<double> p;
// ... some other code
CubicSplineInterpolator f = new CubicSplineInterpolator(arrayOfPoints)
y = f[5.0];
p = f[5];
我应该担心这种使用 double 类型的索引器还是应该使用它们?