- 已定义 Rectangle 模块,但为什么评估 R.length 和 R.area 给出错误:值 area 不是 Rectangle 的成员。
- 定义 Rectangle 模块有什么改进吗?更好的代码?
编码:
class Rectangle(l:Double, w:Double)
{
require (l>0, w>0)
val length = l
val width = w
def this (l:Double) = this (l, l)
def area = (length * width)
}
斯卡拉解释器:
class Rectangle(l:Double, w:Double)
[parsing <console>]
[superaccessors in 7ms]
[selectiveanf in 0ms]
[erasure in 4ms]
[Generate ICode from the AST in 5ms]
[inliner in 0ms]
defined class Rectangle
val R = new Rectangle (12, 12)
[parsing <console>]
[erasure in 6ms]
[lazyvals in 0ms]
[Generating icode for <console>]
[Generate ICode from the AST in 4ms]
[inliner in 0ms]
R: Rectangle = Rectangle@117cc9d
val l = println("Rectangle length is " + R.length)
[parsing <console>]
[loaded class file /home/optimight/.eclipse/org.eclipse.platform_3.7.0_155965261/ configuration/org.eclipse.osgi/bundles/201/1/.cp/lib/scala-library.jar(scala/collection/TraversableOnce.class) in 0ms]
[loaded class file /home/optimight/.eclipse/org.eclipse.platform_3.7.0_155965261/configuration/org.eclipse.osgi/bundles/201/1/.cp/lib/scala-library.jar(scala/collection/immutable/IndexedSeq.class) in 0ms]
[total in 44ms]
val A = R.area
[parsing <console>]
<console>:9: error: value area is not a member of Rectangle
该图像显示了 Eclipse Scala IDE 中的 Rectangle 和 scala 解释器的完整代码。
请指导。