SORU
14 Aralık 2010, Salı


Def, val ve scala artış var

class Person(val name:String,var age:Int )
def person = new Person("Kumar",12)
person.age = 20
println(person.age)

Kod çıktıları bu çizgiler person.age=20 başarıyla yürütüldü olsa 8**,. Bu def person = new Person("Kumar",12) def kullandım, çünkü olur ki buldum. Eğer var ya da val kullanırsam çıktı 20. Varsayılan val scala olduğunu anlıyorum. Bu:

def age = 30
age = 45

...varsayılan bir val çünkü derleme bir hata veriyor. Neden düzgün ve henüz iş değil yukarıdaki satırlar ilk seti de hata yok?

CEVAP
14 Aralık 2010, Salı


Scala tanımlayan şey üç yolu vardır:

  • def tanımlaryöntem
  • val sabit tanımlardeğerdeğiştirilemez olan)
  • var tanımlardeğişkendeğiştirilmiş olabilir)

Kodunuzu bakarak:

def person = new Person("Kumar",12)

Bu yeni bir yöntem person adlı tanımlar. Parametresiz bir yöntem olarak tanımlandığı için sadece () olmadan bu yöntemi çağırabilirsiniz. Boş paren yöntemi ile veya olmadan diyebilirsin ()''. Eğer sadece yazma:

person

bu yöntem (ve eğer dönüş değeri atamak yok eğer değil, sadece atılacak) diyorsun. Kod: bu hat

person.age = 20

ne olduğunu ilk person yöntemini çağırın, ve dönüş değeri (sınıf örneği Person) age üye değişkeni değişiyor.

Ve son satır:

println(person.age)

Burada yine sınıf Person (age 12 set) yeni bir örneğini döndürür person yöntemi, aradığınız. Bu gibi:

println(person().age)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonah Penna

    Jonah Penna

    11 EYLÜL 2005
  • Kingsimba357

    Kingsimba357

    7 NİSAN 2008
  • LaKe Lightroom Tutorials

    LaKe Lightro

    22 Temmuz 2014