相关疑难解决方法(0)

在Scala中使用类变量作为常量

我正在努力学习Scala - 来自C++背景.我正在尝试为一个任务跟踪应用程序编写一个小类我正在一起攻击,以帮助我学习如何编写Scala代码.

这似乎应该很简单,但出于某种原因,它让我不知所措:

package com.catenacci.tts

class Task(val ID:Int, val Description:String) {
 val EmptyID = 0
 val EmptyDescription = "No Description"

 def this() = this(EmptyID,EmptyDescription)
 def this(ID:Int)={
   this(ID,EmptyDescription)
 }
 def this(Description:String)={
   this(EmptyID,Description)
 }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试提供三个构造函数:任务(ID,描述),任务(ID),任务(描述).在后两种情况下,如果调用者没有提供其中一个值,我想将值初始化为常量值.我希望能够在课堂外进行检查以进行单元测试.因此,我认为加入两个公共警察可以让我从班级外面检查,以确保我的状态是我所期望的.

但是,由于某种原因,此代码将无法编译.我收到以下错误:

error: not found: value EmptyID
Run Code Online (Sandbox Code Playgroud)

error: not found: value EmptyDescription
Run Code Online (Sandbox Code Playgroud)

那我错过了什么?我正在完成"Scala编程",所以如果对这个问题有一个简单的答案,请给我页码.我不介意阅读,但是按照第60页和第62页的代码,我不明白为什么这段代码失败了.

我猜这与构造函数方法有关,可能两个val在构造函数结束之前都没有初始化.如果是这样的话,是否有某种方法可以获得我正在寻找的效果?

syntax scala

21
推荐指数
2
解决办法
2万
查看次数

标签 统计

scala ×1

syntax ×1