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 ,因为它是班上的隐私。
类定义必须包含在单个文件中,不能对其进行扩展。