私は「ScalafortheImpatient」の演習5.7を行っています。ここでは、コンストラクターでname:Stringを取り、空白で分割された名前から2つのプロパティfirstNameとlastNameを持つクラスPersonを作成する必要があります。私の最初の裁判は:
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 
}
しかし、私はまだ私の質問に対する答えを得たいと思います。