素朴な質問だと思いますが、私が見つけたのは、コンストラクターから他のコンストラクターを呼び出すことだけです。メソッドを呼び出す必要があります。私のクラス(始まり):
class ScopedIterator[T](val iter : Iterator[T])
{
private var had_next : Boolean;
private var value : T;
moveNext();
...
したがって、単一の引数を持つコンストラクターが必要であり、そのようなコンストラクターでメソッドmoveNextを呼び出します。それで全部です。
コードをコンパイルすると、エラーが発生します。
エラー:抽象メンバーにプライベート修飾子がない可能性があります
private var had_next:ブール値;
値についても同じです。
私はそれを次のように変更しました:
class ScopedIterator[T]
{
private var had_next : Boolean;
private var value : T;
private var iter : Iterator[T];
def this(it : Iterator[T]) =
{
iter = it;
moveNext();
}
...
しかし今、私は「iter =it」でエラーを受け取ります:
エラー:'this'が必要ですが、識別子が見つかりました。
iter = it;
Scalaでそのようなコンストラクターを書く方法は?