我在“不耐烦的 Scala”的练习 5.7 中,我需要创建一个类 Person,它在构造函数上采用name:String并具有 2 个属性firstName和lastName填充的名称由空格分隔。我的第一次试验是:
class Person(name:String) {
private val nameParts = name.split(" ")
val firstName = nameParts(0)
val lastName = nameParts(1)
}
问题是,现在nameParts仍然作为一个私有字段在类中始终可见,而实际上应该只存在于构造函数的本地环境中。我想要的Java等价物是:
class Person{
private final String firstName;
private final String lastName;
Person(String name){
final String[] nameParts = name.split(" ");
firstName = nameParts[0];
lastName = nameParts[1];
}
}
在这里,nameParts仅存在于构造函数中,这是我的目标。关于如何在 Scala 中完成此操作的任何提示?
注意:我最终找到了一种更“Scalesque”的方式:
class Person(name:String) {
val firstName::lastName::_ = name.split(" ").toList
}
但我仍然想得到我的问题的答案。