Classes

在Felix中,一个类用于提供定义函数和过程的空间。

class X {

  // quadratic ax^2 + bx + c, solution:
  fun qplus (a:double, b:double, c:double) =>
    (-b + sqrt (sqr b + 4.0 * a * c)) / (2.0 * a)
  ;

  // square it
  private fun sqr(x:double) => x * x;
}

注意 qplus 函数可以调用 sqr 函数,即使它是稍后定义的。Felix使用随机访问或setwise查找,而不是线性查找。

为了在类中使用函数,我们可以使用显式限定:

println$ X::qplus(1.0, 2.0, 3.0);

或者,我们可以打开课程:

open X;
println$ qplus(1.0, 2.0, 3.0);

但是我们不能访问函数 sqr ,因为它是班上的隐私。

类定义必须包含在单个文件中,不能对其进行扩展。