我很难理解为什么varone,vartwo和varthree正在获得"未找到"错误:"未找到:值"
class Foo(varone : String, vartwo : String, varthree : Boolean)
{
}
我将Foo定义为:
{{1}}
我认为Scala会接受我的类参数并制作它们的字段?
我来自C ++背景,而变量构造函数中的赋值似乎很奇怪,但这就是我所遵循的例子暗示我做的事情。我可能只是给Foo一个构造函数并在那里完成我的作业,但我也想这样理解。
答案 0 :(得分:2)
你可能想要的是一个案例类
case class Foo(varone : String, vartwo : String, varthree : Boolean)
这将为您创建所有变量,并提供等于,哈希,不变性,模式匹配的所有案例类优度
或者,如果您不想要案例类:
class Foo(val varone : String, val vartwo : String, val varthree : Boolean)
如果字段是val,Scala将为其生成getter方法。
您也可以将其声明为var,Scala将同时生成getter和setter。
如果字段没有var / val,如示例所示,Scala既不为字段生成getter也不生成setter方法。
答案 1 :(得分:1)
您必须将变量定义为scala的'val',以使它们成为类成员。或者您可以使用案例类。
使用'val':
class Foo(val varone : String, val vartwo : String, val varthree : Boolean)
使用案例类:
case class Foo(varone : String, vartwo : String, varthree : Boolean)