せずに一度変数を割り当てる - この特定のケース法1と2ではスカラ:これは私が何をしたいですヴァル
class A(some args) {
var v: SomeType = null
def method1(args) = {
v = something1
...
method3
}
def method2(args) = {
v = something2
...
method3
}
def method3 = {
// uses v
}
}
は相互に排他的であり、それらのいずれかがANの一生に1回だけ呼び出されますまた、vは一度代入されます。私はそれを価値にすることを好むだろう。しかし、私はvを初期化するためにmethod2またはmethod3のコンテキストが必要なので、私はコンストラクタでそれを行うことはできません。
どのようにこの「val」動作を達成できますか? method1とmethod2を変更してメソッドを適用すると思いますが、私はその考えが気に入らないのです。さらに、method1と2は同じ引数シグニチャを持っています(したがって、2種類の呼び出しを区別するためにはさらに多くの情報が必要です)。
なぜ「v」値を「m3」の引数として渡せないのですか? 'm3'は' class'の外側から呼び出されていますか?もしそうなら、 'm1'または' m2'の前に 'm3'を呼び出すことができますか? (これは設計上の瑕疵のようです) – jwvh
'method1'や' method2'は一度しか呼び出せないし、 'method3'は後でしか呼び出せないように強制する必要があります。 –
@jwvh m3はプライベートメソッドです、私のスニペットでそれを述べたはずです。 – anindyaju99