Scala yapıcı parametreleri özel val için varsayılan?
Çalışıyorum:
class Foo(bar: Int)
vs:
class Foo(private val bar: Int)
ve her yerde (bar: Int)
yani benim soru (private val bar: Int)
* söyleyerek bulamadım ancak aynı çalışır gibiler, bunlar
aynı/benzer?
Bir yan not, kod parçaları ve bunlar üzerinde -Xprint:typer
kullanmaya çalışıyorum
ikincisi fazladan bir satır dışında aynı kod üretmek. Nasıl
bu fazladan bir satır okudun mu?
..
class Foo extends scala.AnyRef {
<paramaccessor> private[this] val bar: Int = _;
def <init>(bar: Int): this.Foo = {
Foo.super.<init>();
()
}
}
..
..
class Foo extends scala.AnyRef {
<paramaccessor> private[this] val bar: Int = _;
<stable> <accessor> <paramaccessor> private def bar: Int = Foo.this.bar;
def <init>(bar: Int): this.Foo = {
Foo.super.<init>();
()
}
}
..
CEVAP
bar: Int
Bu zor yapıcı bir parametredir. Eğer bu değişken her yerde kurucu dışında kullanılırsa, orada kalır. Hayır alan oluşturulur. Aksi takdirde private val bar
alan oluşturulur ve bar
parametre değeri atanır. Hayır alıcı oluşturulur.
private val bar: Int
Parametre, bu ülkeler için, özel alıcı private val bar
alan oluşturur. Bu davranış, eğer parametre yapıcı (toString()
ya da değil gibi) yanında kullanılmış olursa olsun, yukarıdaki gibi aynı.
val bar: Int
Yukarıdaki gibi aynı ama Scala-alıcı kamu
Dava sınıfları bar: Int
Dava sınıflar söz konusu olduğunda, varsayılan olarak, her bir parametre val
değiştirici vardır.
Neden varsayılan parametresiz yapıcı p...
Scala: en İyi komut satırı parametrele...
Automapper - nasıl göster özelliği bel...
Özel ve Scala yapıcı korumalı...
Scala için aşırı yapıcı'Dava Sını...